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>