mt-sukeroku2の大幅な変化の一つとして、テキストフォーマッタとしての機能をText::Sukeroku::*というPerl Module化し、MovableTypeへの依存を切り離したことが挙げられます。
その分弊害として、インストールがやりにくくなったりとかそういう問題はあるんですが。
これにより、「なんちゃってはてなダイアリー記法」をどのPerlスクリプトでも使えるようになりました。
ま、こちらがジタバタ足掻いている間にnaoyaさんがCPANへの登録の検討を考えられたりしているので風前の灯という気がしまくりですが†1。
ともあれ、これを使って頂ければPerl系のblogツールにYukiwiki風/Pukiwiki風/HatenaDiary風の表記をHTMLにレンダリングできるようになるというわけです。
活用する用途がどれぐらいあるのか分かりませんが(^^;
■簡単な使い方
use Text::Sukeroku::Agemaki; my @lines = <STDIN>; my $hatena = Text::Sukeroku::Agemaki->create('hatena', join("", @lines)); print ($hatena->formatText());
これで簡単なパイプツールが出来ちゃいます。
■もすこし説明。
Text::Sukeroku::Agemakiというファクトリみたいなクラスがあるので、そいつからフォーマッタとなるクラスのインスタンスを起こします。
my $hatena = Text::Sukeroku::Agemaki->create('hatena', join("", @lines));
一つ目の引数が書式の指定で、yukiwiki, pukiwiki, hatenaのいずれかを選択することになります。(今後増えるかもしれんけど)
二つ目の引数がソースとなるテキストの指定。
先ほどの例では標準入力の内容をそのまま吐き出すということをしていますが、普通に変数$textみたいなので渡しても問題ありません(現状、リファレンス渡しには対応してないです)。
print ($hatena->formatText());
フォーマッタのメソッドformatText()によりHTMLレンダリングされた文字列が返って来ます。
アーカイブに収録されている/plugins/mt-sukeroku2.plをご覧頂いても、上記の内容から飛び出たことはほとんどやっていないことが分かるかと。
中身については前述の通り改善点が多数あるので詳細はまたの機会にしたいと思います。†2