コード整形プラグイン:Diffサンプル

※Wiki.pm の差分(blockプラグイン用の修正パッチ)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
--- 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-&gt;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);
} } }