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>