Movable Type の正規表現プラグイン

Movable Type のテンプレートカスタマイズ関連で、正規表現 グローバルフィルターが欲しいと思って自作しようかと思っていたのですが、きっと誰かが作っているだろうと思って調べてみたら、 MT Regex Plugin なるものを見つけました。MT プラグインで有名な、http://www.bradchoate.com/ 作です。

インストール方法は通常の MT プラグインと同じで

  • mtregex-1_61.zip を解凍。
  • (mt home)/plugins/regex.pl
    (mt home)/extlib/bradchoate/regex.pm
    (mt home)/extlib/bradchoate/postproc.pm
    と FTP する。
してOKです。これで、PHP を導入してカスタマイズするに匹敵するほどに動的なコンテンツを静的な html として出力が可能となります。

かなり多機能なので、詳細は付属の readme.txt を読んで頂くのが一番良いのですが、特に便利な使い方を抜粋しました。

- スポンサーリンク -

  • MTRegexDefine コンテナタグ よく使う正規表現を予め定義しておくためのタグ。
    例:orz を MSN の号泣icon に置換するフィルタの定義
    <MTRegexDefine>s|orz|<img src="/emoticons/cry_smile.gif">|g</MTRegexDefine>

  • MTIfMatches コンテナタグ 正規表現の条件が真の時、<MTIfMatches>〜</MTIfMatches> の範囲内を表示
    例:カテゴリ が perl と php の記事だけを表示
    <MTEntries>
     <MTIfMatches var="EntryCategory" pattern="m/(perl|php)/i">
      <MTEntryBody>
     </MTIfMatches>
    </MTEntries>

  • MTIfNotMatches コンテナタグ MTIfMatches の Not パターンで動作

  • regex フィルタ 全ての MT タグに対して、MTRegexDefine で定義したフィルタや直接指定するフィルタを適用する。
    例:全ての記事に対して、perl という文字を強調する
    <MTRegexDefine>s|perl|<b>perl</b>|g</MTRegexDefine>
    <MTEntries regex="1"> <MTEntryBody> </MTEntries>

    または

    <MTEntries regex="s|perl|<b>perl</b>|g"> <MTEntryBody> </MTEntries>

今まで見てきたプラグインの中でもかなり適用範囲が広く秀逸なプラグインだと思いました。ちなみに、プラグインの仕組みについて学びたい方は、「Techknow Movable Type 」や「iandeth.: Movable Type のER図(Entity Relation Map)を作ってみた&テーブル定義まとめてみた」あたりがオススメです。
- スポンサーリンク -