プラグインに悩む
PersicaはPukiWikiと同様にプラグインで機能を拡張できる。
プラグインにはインラインプラグインとブロックプラグインがあって、ブロックの方はまあまあ安定したと思う。なにしろ一行にひとつしか書けないから簡単と言えば簡単だ。問題はインラインである。一行に複数書ける上に入れ子も可能でなければならない。その前提でインラインプラグイン記述の抽出処理を考えるとなるとどうしても複雑になってしまう。
さらにはURLの自動リンク機能とインラインプラグインのバッティングが厄介だ。具体的にはlinkプラグインである。これは明示的にリンクを埋め込むプラグインなのだが、プラグインが出力したアンカーのURLに、Persica本体でさらにリンクを張ろうとするので、既にリンク化したURLは無視しなければならないのだが、その判定がまた面倒なのだ。
今考えているのは、プラグイン記述を検出したらパラメータごと退避させておいて、Persica本体側でのURL処理が終わった時点でプラグインの出力と置き換える、という処理なのだが、具体的にどう書くか、じっくり検討している時間がない。
当面のトラブル回避策としては、使用者が極力一行を短く書くようにするしかない。ネストはまあ仕方がないにしても、一行に二つ以上のインラインプラグインが記述されないようにするわけだ。本来ならば使用者が自由に本文を書けるように、システム側で何とかするべき問題であるから居心地が悪い。
おれが何かまぬけな勘違いをしているだけで、実際はずっとシンプルな処理に出来るのであれば良いのだが。
Comments