--- Wiki.pm.org Wed Apr 27 21:14:12 2005
+++ Wiki.pm Wed Apr 27 23:49:52 2005
@@ -486,6 +486,28 @@
#==============================================================================
# <p>
+# ブロックプラグインを登録します。プラグインの出力タイプには"WIKI"または"HTML"を指定します。
+# 省略した場合は"HTML"を指定したものとみなされます。
+# </p>
+# <pre>
+# $wiki->add_block_plugin(プラグイン名,プラグインのクラス名,プラグインの出力タイプ);
+# </pre>
+#==============================================================================
+sub add_block_plugin {
+ my $self = shift;
+ my $name = shift;
+ my $class = shift;
+ my $format = shift;
+
+ if($format eq ""){
+ $format = "HTML";
+ }
+
+ $self->{"plugin"}->{$name} = {CLASS=>$class,TYPE=>'block',FORMAT=>$format};
+}
+
+#==============================================================================
+# <p>
# プラグインの情報を取得します
# </p>
# <pre>
@@ -579,7 +601,7 @@
#===============================================================================
# <p>
-# インラインプラグイン、パラグラフプラグインの呼び出し(内部処理用の関数)。
+# インラインプラグイン、パラグラフプラグイン、ブロックプラグインの呼び出し(内部処理用の関数)。
# 初期のメソッドのため命名規則(privateメソッドのメソッド名は_から始める)
# に従っていません。
# </p>
@@ -588,6 +610,7 @@
my $self = shift;
my $plugin = shift;
my $parser = shift;
+ my $source = shift;
if(defined($plugin->{error}) && $plugin->{error} ne ""){
return "<font class=\"error\">".$plugin->{error}."</font>";
@@ -609,16 +632,22 @@
my @result = $parser->parse_line($obj->inline($self,@args));
undef($obj->{parser}); # パーサの参照を解放
return @result;
- } else {
+ } elsif($info->{TYPE} eq "paragraph"){
$parser->parse($obj->paragraph($self,@args));
undef($obj->{parser}); # パーサの参照を解放
return undef;
+ } else {
+ $parser->parse($obj->block($self,$source,@args));
+ undef($obj->{parser}); # パーサの参照を解放
+ return undef;
}
} else {
if($info->{TYPE} eq "inline"){
return $obj->inline($self,@args);
- } else {
+ } elsif($info->{TYPE} eq "paragraph"){
return $obj->paragraph($self,@args);
+ } else {
+ return $obj->block($self,$source,@args);
}
}
}
|
最終更新時間:2005/10/24-02:01:22