-
HOME
-
Tags
[ HikiDoc ]
Text::HikiDoc::Plugin 構想 (1) # こんな感じで使うものを作ろうかと。
$obj = Text::HikiDoc->new({ string => $text, level => 2, empty_element_suffix => ' />', br_mode => 'true', table_border => 'false', plugged => ['br','hoge','fuga'], }); $obj = Text::HikiDoc->new({ string => $text, level => 2, empty_element_suffix => ' />', br_mode => 'true', table_border => 'false', plugged => 'all', unplugged => ['br','hoge','fuga'], }); plugged に配列を渡して、利用するプラグインを指定する 指定しない時はプラグインを利用しない 全部使う時は、plugged = ‘all’。all と組み合わせて、unplugged で使わないものを指定できる こういう作りにしておけば、Plugin 以下にファイルがあってもデフォルトでは無視されるので、今との互換性も保たれるし。
で、Text::HikiDoc::Plugin 継承した Text::HikiDoc::Plugin::br の中の to_html() を呼び出して処理する、と。
...
Text::HikiDoc::Plugin 構想 (2) # 考え始め て以来、丸々一ヶ月手つかず。久しぶりに考え、ちょっと構想変更。
add_plugin, add_plugin_all, remove_plugin, remove_plugin_all によって、利用するプラグインを操作 new する時に plugin 追加できるようにするかどうかは、後日検討 new する時しか変更できないのは変だと思うし、to_html 時に追加するくらいなら、専用メソッド用意するのが一番素直じゃね? ってことで。実装は、風邪が治って、子供の行事が全部終わった頃に開始する予定
Text::HikiDoc::Plugin な仕組みはできた # ぶー、結局 eval でホゲッとやってしまった。この連休中にでもいくつかサンプルプラグイン作ってみて、問題なさそげなら公開する
Text::HikiDoc::Plugin 公開するか悩み中 # 一応完成したんだが、何を悩んでいるかというと。。。
本家 hikidoc に新機能が追加された が、Perl 界隈で Syntax Highlight な仕組みにデファクトがあるかというとそうでもなく、選択肢を用意するとなると、plugin による実装がよさそうだよなぁ。。。 今後どういう機能追加があるかわからないけど、ruby 依存な機能追加に対する互換性維持はしんどそうなので、しばし頭を悩ませてから方針決定したい 入れ子対応(plugin 表記の中に plugin 表記)しようと思うと、plugin 表記周りを大きく変更した方がよさそうだなぁ。今の状態で一回公開しておいてもいいが、仕様変更もありえるよなぁ plugin からのアウトプットは、HTML 決めうちだとラクなんだけど、hikidoc 表記にしたい場合もあるよなぁ、きっと。 HikiDoc::Plugin でやることの制限がきついと、結局アプリケーション側で全部実装→ HikiDoc の Plugin は不要ということになるよなぁ というようなことで悩んでいる。具体的には、
...
Text::HikiDoc::Plugin 公開することにした # 悩んだところで、書いたソースを破棄するわけでもなし。せっかくなので、公開してしまえ。
つうわけで、ドキュメント書く。英語→日本語→英語書き直し という手順を踏むので、ここが一番大変だ。
備忘 # 忘れないようにトドっておく
Plugin もドキュメント書く 本体のオプション用 setter/getter 書く Text::Highlight 以外の構文ハイライト系プラグイン作る ライセンス記述がまぎらわしい、絶対勘違いする、との指摘を受けたので、わかりやすくする
そろそろ公開したいがトドが残っている # Plugin もドキュメント書く 一応書いた。。。が、不十分 本体のオプション用 setter/getter 書く →まだ Text::Highlight 以外の構文ハイライト系プラグイン作る Text::VimColor 版作った。Syntax::Highlight::Engine::Kate のも作る予定。あと一個作りたいんだが、それは時間かかりそうなので、今回は見送り ライセンス記述がまぎらわしい、絶対勘違いする、との指摘を受けたので、わかりやすくする 書き直した その他変更点は
...
Text::HikiDoc r1_016 公開 # Text::HikiDoc r1_016 を公開。「B’s Soft 」のコーナーからどうぞ。以下変更点
プラグイン形式で書式追加できる機能を追加 build 時に inc::Module::Install を使うよう変更 テストケースを、Test::More から Test::Base に変更 プラグイン機能の追加で、ドキュメント修正してます
...
Text::HikiDoc r1_017 公開 # Text::HikiDoc r1_017 を公開。「B’s Soft 」のコーナーからどうぞ
機能的な変更はなくて、Text::HikiDoc::Plugin::texthighlight と Text::HikiDoc::Plugin::vimcolor のリファクタ
...
いきなり FAIL # あーぁ なんだか Module::Build も inc::Module::Install も操れてない。