SyntaxHighlighterでYAMLをハイライトする


当然と言えば当然だが、TT2 のとき(その1その2)よりは遙かに楽だった。

# サンプル
arg1: value1
arg2:
    -   [ value2, value3 ]
    -   arg3:
            - value4

修正・作成するファイルは2つ。

ファイル名
/mt/plugins/SyntaxHighlighter/lib/SyntaxHighlighter/Plugin.pm

        'html'=>'shBrushXml',
        'xhtml'=>'shBrushXml',
        'tt' => 'shBrushTT2',
        'tt2' => 'shBrushTT2',
# 前回の修正の直後に書き加える
        'yml' => 'shBrushYAML',
        'yaml' => 'shBrushYAML',
    );

ファイル名
/mt-static/plugins/SyntaxHighlighter/2.0/scripts/shBrushYAML.js

/* こっちは新たに作成する
   かなり大雑把だけど、一応の役には立つよね */
SyntaxHighlighter.brushes.YAML = function() {
    this.regexList = [
        { regex: /#.*$/gm,     css: 'comments' }
        ,{ regex: /\w+:/g,     css: 'keyword' }
        ,{ regex: /[^#:]+$/gm,    css: 'string' }
        ,{ regex: SyntaxHighlighter.regexLib.doubleQuotedString
            ,css: 'string' }
        ,{ regex: SyntaxHighlighter.regexLib.singleQuotedString
            ,css: 'string' }
    ];
};
SyntaxHighlighter.brushes.YAML.prototype
    = new SyntaxHighlighter.Highlighter();
SyntaxHighlighter.brushes.YAML.aliases
    = ['yml', 'yaml'];

最後にMTのHTMLヘッダーテンプレートを書き換えて完了だ。

<$mt:SyntaxHighlighterInclude brush="html,perl,jscript,bash,tt2,plain,sql,yaml" theme="default"$>

コメントを残す