WATANABE Akitsugu
aki****@de*****
2003年 8月 7日 (木) 02:58:02 JST
Akiです。 From: Naoki Takezoe <ADS28****@nifty*****> Subject: [Fswiki-dev] 3.5.0dev1をアップしました > ・プラグインをインラインプラグインとパラグラフプラグインに > 分類した。 > > ・Wiki#add_pluginメソッドを廃止し、Wiki#add_inline_plugin > とWiki#add_paragraph_pluginを使用するようにした。 第1に、バージョン番号について。 プラグイン周りの開発側インタフェースが完全に変わってしまっているので、 メジャーバージョンを上げてしまってはいかがでしょうか。 マイナーバージョン変更だけでは、無用の誤解を招くように感じます。 第2に、プラグイン利用者としての要望なのですが、 Wiki->add_plugin($name, $class) を Wiki->add_inline_plugin($name, $class) の別名として 残せないでしょうか? 標準パッケージに導入されていないものを含めた全てのプラグインを 新系列対応に修正するのは非常に手間です。 後方互換性を残しつつ各プラグイン作者に新バージョンへの対応を促す戦略の方が、 バージョンアップの際の貢献者たち全体の作業量を削れると思います。 # 後方互換性を残せない理由があるのでしたら、ごめんなさい 第3、第4、第5はプラグイン作者としての要望です。 まず、第3の要望から。これはサポート掲示板にも書きましたが、 lib::Wiki (および、plugin::core など主要プラグイン)が VERSION を Export するようにしてはいかがでしょうか。 VERSION が Export されていれば、プラグイン作者は 後方互換性を保ったり、明示的にバージョン指定をしたりできるようになります。 例: # lib/Wiki.pm use Exporter (); use vars ($VERSION @ISA ...); @EXPORT = qw(redirect config add_user ...); $VERSION = '3.42'; # plugin/example/Install.pm sub install { my $wiki = shift; if (Wiki->VERSION >= 4.00) { # Wiki version is enough! $wiki->add_inline_plugin('example', 'plugin::expamle::Exapmle', 'Wiki'); } else { # Wiki version is not enough... return; # Install nothing. # OR $wiki->add_plugin('example', 'plugin::expamle::ExapmleBefore4.00'); } } 第4の要望は、プラグインの複数行引数の導入です。 以下のような長い引数を受け付けられるようにしてはいかがでしょうか。 {{example arg1, arg2, Long long long long argument, which may be represented by a Wiki style and may not be separated by any comma (,) characters. }} このような書式の長い引数を持てるようになると、 comment を tDiary のツッコミ のように表示するプラグインを 楽に実装できるようになります。 例: {{tukkomi * First reply * Second reply * Third reply, which is very very very long and abbreviated. ... }} パース後: <ul class="comment"> <li> First reply <li> Second reply <li> Third reply, which is very <a href="wiki.cgi?ACTION=...">(abbreviated)</a>. <li> ... </ul> 最後に第5の(かなり裏技っぽい)要望なのですが、 lib::Wiki と テンプレート機構を介してHTMLの<HEAD>領域にプラグインから アクセスできる仕掛けを加えてはいかがでしょうか? プラグイン固有のスタイル(CSS)を プラグイン側から透過的にインストールできるようになるので、 便利かと思います。 例えば、calendar固有のクラスに対するスタイルを config/usercss.dat に 書くという見栄えの悪い習慣から決別できます。 また、BugTrack-plugin/19 の 自動リロードプラグインを もっとスマートに書けるようになります。 ただし・・・悪用の危険も大きいですが。 -- WATANABE, Akitsugu (aki****@de*****)