« mt-sukeroku2 β1公開 | メイン | mt-sukeroku2 おまけ機能 »

Text::Sukerokuについて

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

  • †1: さらにこっちのはOOPできてないクラス設計だったりするし…。
  • †2: この表側のインタフェイスについては変更するつもりは基本的にございません。

トラックバック

このエントリーのトラックバックURL:
http://hsj.jp/blog/mt-tb.cgi/1224

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2005年06月24日 19:23に投稿されたエントリーのページです。

ひとつ前の投稿は「mt-sukeroku2 β1公開」です。

次の投稿は「mt-sukeroku2 おまけ機能」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
Movable Type