SyntaxHighlighterを設定してみる

電脳備忘録

このブログはコード表示にSyntaxHighlighterを利用しているのですが、バージョンが1.5と古いのでそろそろ刷新しようと思い、最新版?の3.0.83を設定して動作を確認しようとしたのですが、サンプルを元に設定したものの全く動着ませんでした。

chromeでデバッグツールで確認したところ記のエラーメッセージが表示されて動作していませんでした。

Uncaught ReferenceError: XRegExp is not defined
Uncaught TypeError: Cannot set property 'autoloader' of undefined
Uncaught TypeError: Cannot read property 'Highlighter' of null

SyntaxHighlighterを動かすにはどうやら「XregExp」が必要のようです。これは環境によって異なるのでしょうかねぇ...。 XRegExpのサイトからダウンロードして下記のように設定したところ無事動作しました。以前は全て書いていましたが、今はまとめて呼び出せるんですね。

<script src="/js/libs/syntaxhighlighter/xregexp-min.js"></script>
<script src="/js/libs/syntaxhighlighter/shCore.js"></script>
<script src="/js/libs/syntaxhighlighter/shAutoloader.js"></script>
<script src="/js/libs/syntaxhighlighter/shBrushXml.js"></script>
<script>
SyntaxHighlighter.autoloader(
"bash shell                /js/libs/syntaxhighlighter/shBrushBash.js"
,"css                      /js/libs/syntaxhighlighter/shBrushCss.js"
,"sass                     /js/libs/syntaxhighlighter/shBrushSass.js"
,"php                      /js/libs/syntaxhighlighter/shBrushPhp.js"
,"html xml xhtml           /js/libs/syntaxhighlighter/shBrushXml.js"
,"js jscript javascript    /js/libs/syntaxhighlighter/shBrushJScript.js"
,"perl pl                  /js/libs/syntaxhighlighter/shBrushPerl.js"
,"plain                    /js/libs/syntaxhighlighter/shBrushPlain.js"
,"sql                      /js/libs/syntaxhighlighter/shBrushSql.js"
,"yaml yml                 /js/libs/syntaxhighlighter/shBrushYAML.js"
);
SyntaxHighlighter.all();
</script>

ただpre要素に設定する必要があって、これまでの記事はすべてこの個所がtextareaなので、全雉変更しないといけないのでどうしようかなぁと悩んでいます。

Newer
Older
Dark
Light
menu