MovableType用BMQuote Plugin Ver.0.50

Movable Typeのアップデートは、実はそんなに難しくないし手間もかかりません。
しかし、時々めんどくさいという声を聞きます。ソースコードを修正しているので、それを新しいバージョンに適用するのが大変、という人が多いみたいです。
本当は、ソースコードには手を入れずにプラグインでカスタマイズするのが一番なのですが……。

そこで、今回「BMQuoteプラグイン」というものを作ってみました。
これは、Movable Typeのクイック投稿機能を使ったときの引用文のフォーマットをソースコードを修正することなく変更するプラグインです。
今まで、lib/MT/App/CMS.pmの

$param{text} = sprintf qq(<a title="%s" href="%s">%s</a>\n\n%s),

この部分を

$param{text} = sprintf qq(<blockquote><div class="quotetitle"><a title="%s" href="%s" target="_blank">%s</a></div>\n\n%s\n\n</blockquote>),

こんな感じに書き換えるカスタマイズを行っている方も多いと思います。
ただ、この方法で書き換えてしまうと、前述の通り、バージョンアップ時にまたこの修正をしなければいけません。
しかし、このプラグインを使えば、この作業は(元のフォーマットが変わらない限り)不要になります。

ぜひ、お試しください。

ドキュメント:BMQuoteプラグイン ドキュメント
ダウンロード:zip形式tar.gz形式

※引用文の書式に関しては、永井俊哉さんのXHTMLでの引用方法を参考にさせていただきました。

Movable Type3.3から新機能として、Transformerプラグインが開発出来るようになりました。
このタイプのプラグインを使うと、管理画面のカスタマイズなどを行うことが出来るようになります。
BMQuoteプラグインでは、この機能を使ってみました。

MT->add_callback('MT::App::CMS::AppTemplateOutput.bm_entry', 9, $plugin, \&transformer);

ここで、bm_entryテンプレートの出力時にコールバックを受け、すでに整形済みの引用文を一度分割しなおして、タイトル、URL、選択文字列などの各要素を抽出して、それを再整形しています。