Text::AutoLink

| コメント(0) | トラックバック(0)



なんかリンクされてるので、もう少し書いてみる。Text::Hatena::AutoLinkははてな記法にのみ対応してるわけだけれども、これをもっと一般化したものが欲しかった。でもじゃああわよくばText::Hatenaでも使おうと思ったら使えるフレームワークにしちゃえー、と思って書いたのがText::AutoLink。



use Text::AutoLink;
my $auto = Text::AutoLink->new;
my $ret = $auto->parse_string($string);

というだけでリンクを勝手に文字列に埋め込んでくれる。ここまではText::Hatena::AutoLinkと一緒。でもAutoLinkの動作を変えたい、しかもプラグインみたいな形にしたい、っていうのがあったので、これにさらにこんな感じでプラグイン使えるようにしてみた:



use Text::AutoLink;
my $auto = Text::AutoLink->new(
plugins => [ MyPlugin->new, MyPlugin2->new, ... ]
);
my $ret = $auto->parse_string($string);

pluginが指定された場合は指定されたプラグインのみが処理を行うのでこれだけで最初の例と全く動作が異なるAutoLinkができる。


リンクを動的に作成する時に気をつけないのは主に「すでにリンク化された文字列をリンク化プロセッサーに渡さない」ということだと思っているのだけれども、これをHTML::TreeBuilderでほげほげしてみている。その分処理は普通の正規表現で行う置換に比べて格段に遅いとは思う。


どうですかー、はてなで使いませんか(笑)


Author

Daisuke Maki (a.k.a lestrrat): Perl hacker, Director of Japan Perl Association, YAPC::Asia Tokyo Organizer (2009-2012), Fluent in Japanese, English. Ex-Brazilian (sorta)

#perl #c #ruby #java #mysql #english #japanese #opensource #stf #cooking #scotch #cigar


このエントリーをはてなブックマ
ークに追加

翔泳社よりモダンPerl入門(2010)を出版させていただいております。できれば内容をアップデートしたいので是非皆様・・・現在の在庫処理にお力をお貸しください!><

月別アーカイブ