[Fswiki-dev] Re: get_current_parser()実装について

Zurück zum Archiv-Index

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/




Fswiki-dev メーリングリストの案内
Zurück zum Archiv-Index