プラグイン入れました、 Acronym Plugin 。略語に <acronym> を自動的に入れてくれる MT のプラグイン。
たとえば、「 HTML 」とかって書くと、自動的に <acronym title="HyperText Markup Language">HTML</acronym> ってな感じに直してくれる。超便利!
ただし、自分は acronym 要素でなく、 abbr 要素に直してます。XHTML2.0では、 acronym 要素は削除されるかもしれないみたいなんで。
どうやら、スペースなどの、区切りとして扱われる文字を入れないと駄目なようです。ということで、日本語も区切りとして扱われるように改造することにしました。
改造箇所は二つ。まず、一つ目は「 acronym.pl 」の 80 行目あたりのこれ
if ($token->[1] =~ s/$acronym_text_start$key$acronym_text_end/$1<acronym title=\"$s\">$key<\/acronym>$2/g) {
これを以下のように直す。
if ($token->[1] =~ s/$acronym_text_start$key$acronym_text_end/$1<abbr title=\"$s\">$key<\/abbr>$2/g) {
これで出力されるのが acronym 要素でなく、 abbr 要素になる。abbr 要素に直すパッチとかあったけど、パッチの当て方がよく分からないのでこれで。
そして、問題の区切り文字。これは「 acronym.pl 」の 65 行目あたりのここを変更する。
my $acronym_text_start = '(\s|^|,|\.|\(|\/|-|:)';
my $acronym_text_end = '(\s|$|,|\.|\)|\/|-|:|\'|\?|\!)';
上記のような正規表現を、以下のような英数字以外を区切りとする簡素な正規表現に差し替えました。
my $acronym_text_start = '([^A-Za-z0-9])';
my $acronym_text_end = '([^A-Za-z0-9])';
後にこのプラグインははずしました。