KG
kg_soft****@yahoo*****
2007年 1月 11日 (木) 17:55:13 JST
KGです。 On Thu, 11 Jan 2007 12:56:21 +0900 "Naoki Takezoe" <takez****@gmail*****> wrote: > 確かに問題ありますね。 > > - スタックを使うのがよいのか… > - HTMLプラグインの場合でも使えたほうがよいのでは… > > など、少し考えたいところです。 全体をパッと見たところスタックでよいかと考えました。 もしかしたら、見落としあるかも〜ですが・・・。 HTMLプラグインでも使えた方が何かと便利です。 ちなみに、拙作の「複数行対応プラグイン」ではそのようにしています。 HTML系プラグインで、見出し出力時にアウトラインへ反映させる為に必要となります。 ただし、これを行うとパート編集の位置がずれてしまうという欠点もあります。 ※見出しのWiki変換を行わなければOKなんですがねぇ。 ついでなので、1つ要望を・・・ 拙作の「複数行対応プラグイン」ではもう一つ便利な機能があります。 Wiki::process_plugin 内で プラグイン・インスタンスに $plugin->{command} の値を渡しています。 my $name = $plugin->{command}; : $obj->{command} = $name; ← ここ これは、何をするための物かというと、元々はLayoutプラグインに同封している LayoutAliasの機能でプラグインに別名を定義して利用する為のものです。 例えば、 {{@sample}} として記述したプラグインを {{layout sample}} に置き換えて実行する。 で、他の利用方法としては、以下のようなことを考えています。 * 1つのパッケージ内に複数のインライン・プラグイン(もしくはパラグラフ・プラグイン)を、記述する。 例としては以下のようなコードです。 sub inline { my $self = shift; if ($self->{command} eq 'sample1') { return $self->inline_sample1(@_); } elsif ($self->{command} eq 'sample2') { return $self->inline_sample2(@_); } } sub inline_sample1 { : } sub inline_sample2 { : } hookで利用されている第二パラメータと同様な扱いです。 actionでは、$cgi->param('action') で取得する action 名みたいなものになります。 利点は、 * モジュール数の削減。 * 同一パッケージとすることで、インスタンス変数を共有し易くなる。 ※現仕様では Wiki::get_plugin_instance を利用しないといけない。 などです。 ご検討いただけると助かります。 > まだ開発版なので、そもそもget_current_parser()ではなく > 別の良いアイデアがあれば変更するのもありです。 > > > 今回追加されたこのAPI関数は先の竹添氏のメールの新機能一覧に入っていない > > ようですが・・・単に記述漏れ? > > 記述漏れですねー。 やっぱり記入漏れでしたか、、、 変更予定があって、故意に記入していないのかと思ってました。 名称は、分かりやすくて良いんじゃないでしょうか。 ちょっと長い気もしますが・・・。 -- KG <kg_soft****@yahoo*****> http://kgsoft.jf.land.to/ -------------------------------------- Start Yahoo! Auction now! Check out the cool campaign http://pr.mail.yahoo.co.jp/auction/