前回の状態では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;