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