日記
PHP用の汎用WikiParser作り中 (19:31)Edit

いろんな自作ツールで手軽に使える汎用的なWikiParserが欲しかったんで、RandomNote/PHPのWikiパースコードをベースに作り中(thanks to ninjinさん、yaktyさん)。以下のような感じでWikiテキストをHTMLにレンダリングできる。

$parser =& new WikiParser();
echo $parser->parse($text);

オプション等で、ある程度挙動(WikiNameの有無とか、改行を生かすかPタグに変えるか、とか)を変えられる。あとキーワードリンクやInterWikiの設定、プラグインによる拡張(結果をその場に埋め込み系)が可能。これを使ってYukiWikiMiniレベルのシンプルなWikiEngine(WikiEngineとしての機能はシンプルだけどWiki記法的には結構リッチ)を作ってみたんで、詳しい情報はそこに書いておいた。現状のソースも置いてある。

Wiki記法はtDiary Wikiスタイルのもの(というかオリジナルWikiのもの)にできるだけ準拠しつつ、RandomNoteで使われていたブロック系の拡張も残し、独自の拡張(主にプラグイン)も用意している。

現状でも一応動いているんだけど、WikiParserクラスの仕様として、現状以上の拡張性を持たせるかどうか、持たせるとしたらどういうインターフェースがいいか迷い中。

パース中のドキュメントのn箇所が連携するような拡張を、スマートに記述できるようなやり方ないかなー。コールバック関数+イベントで一応実現できたけど、いまいちスマートさが足りなかったんだよなー。

Published At2005-03-23 00:00Updated At2005-03-23 00:00