SyntaxHighliter 3.xを導入したら、ブラシの指定方法が変わっていました。以前の方が簡単だったような気がするんですが。。。
文句をいってもオープンソースのを使わせてもらっている以上しかたないということで、 ページを表示したときに 3.0.83 用のブラシの指定方法ように切り替えるために作成したjavascriput です。ちなみにjQueryを使用しています。
検証環境
- SyntaxHighlighter 3.0.83
- jQuery 1.7
1. 置き換えスクリプト
こんな感じで画面表示時にスクリプトを実行しています。スクリプトでは、 pre タグで属性のname が code の要素に対して処理を行っています。class 属性が regacyaliases のキーに一致している値を持っている場合、ブラシを指定するclass属性の置き換えをしています。regacyaliases でのキーの指定と設置するブラシのclass はサイトで使用している従来のSyntaxHighliter のブラシの種類に応じて適当に置き換えて使ってください。
<script type="text/javascript" language="javascript"> $(function () { $.each($("pre[name='code']"), function () { var node = $(this); var regacyaliases = { 'c#': "brush: csharp", 'cs': "brush: csharp", 'csharp' : "brush: csharp" , 'xml': "brush: xml", 'html': "brush: html", 'css': "brush: css" , 'sql': "brush: sql", 'js': "brush: js", 'javascript': "brush: js" }; for (var key in regacyaliases) { if (node.hasClass(key)) { node.removeClass(key).addClass(regacyaliases[key]); } } }); SyntaxHighlighter.all(); }); </script>
さんのコメント: さんのコメント: