SyntaxHighlighter でTemplate Toolkitをハイライトする その2


前回の状態ではTT2構文のハイライトはうまくいくものの、本来の用途である、HTML中に埋め込んだ状態ではそれが反映されなかった。それは今回使用したプラグインにおける以下の仕様のためだ。

SyntaxHighlighter for Movable Type « kwLog

  • SyntaxHighlighterのconfigurationには対応していません

よってプラグインの構文を無理矢理拡張して対応。さらにカラフルになった。

#!/usr/bin/perl
use utf8;
use strict;
use warnings;
use errors;

my $word = shift;
if ( $word =~ /orz/ ) {
    die "ズコー";
}

以下のような構文を書くと、

[code:jscript;html-script:true;gutter:false;highlight:[1,7]]
<div>
    <p id="test">あいうえお</p>
    <script type="text/javascript">
        var v1 = "テスト";
        var v2 = false;
    </script>
</div>
[/code]

こんな表示になります。

<div>
    <p id="test">あいうえお</p>
    <script type="text/javascript">
        var v1 = "テスト";
        var v2 = false;
    </script>
</div>

肝心の変更は以下のファイルに行う。213行目を書き換えて認識できる文字種を増やすだけだ。

/mt/plugins/SyntaxHighlighter/lib/SyntaxHighlighter/Plugin.pm

$text =~ s/\[code:([[\],;:\w#+-]+)\](.*?)\[\/code\]/&sh_transform($1,$2,$version)/esg;

コメントを残す