<html xmlns="http://www.w3.org/1999/xhtml" a0:Name="SuikaWiki" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:Version="0.9"><head></head><body><p><a0:anchor-end a0:anchor="1">[1]</a0:anchor-end> <a0:anchor>SuikaWiki</a0:anchor> の plugin は、現時点で次のことに使えます。
(各項目の初めに示したのが内部処理用の型名です。)<ul><li><em>wikiform_input</em>: <a0:anchor>WikiForm</a0:anchor> の入力欄の要素</li><li><em>wikiform_option</em>: WikiForm の追加設定</li><li><em>wikiform_template</em>: WikiFrom の入力を処理する部位</li><li><em>wikiinterwiki</em>: <a0:anchor>InterWiki</a0:anchor> の名前から <a0:anchor>URI</a0:anchor> への対応の要素</li><li><em>wikiview</em>: <code class="perl">%ViewDefinition</code> で使用する規則</li><li><em>wikiview-resource</em>: <a0:anchor>Wiki//Resource//</a0:anchor> で使用する規則</li><li><em>wikibiew-resource-safe</em>: <a0:anchor>Wiki//Resource//</a0:anchor> で使用する規則の引数などで使用する規則</li><li><em>wikiformat</em>: WikiDatabase のデータと出力形式の変換</li><li><em>wikipage_list_item</em>: 頁一覧 (WikiPage plugin の出力) のための雛形で使用する規則</li><li><em>wikipage_list_item_safe</em>: <code class="wiki">wikipage_list_item</code> の引数などで使用する規則
<a0:form input="%text(id=&gt;name,label=&gt;名前,default=&gt;wiki,size=&gt;10);: %text(id=&gt;desc,description=&gt;説明,size=&gt;15);" template="-''%text(source=&gt;name);'': %text(source=&gt;desc);"></a0:form></li></ul></p><p><a0:anchor-end a0:anchor="6">[6]</a0:anchor-end> 導入されている plugin の一覧は <a0:anchor>Wiki//Plugin//Info</a0:anchor> で見ることが出来ます。</p><p><a0:anchor-end a0:anchor="8">[8]</a0:anchor-end> Plugin は plugin のための界面を持った perl の module です。
直接 perl module を書いても構いませんし、 wps file を作って mkplugin.pl
<a0:anchor-external a0:resParameter="SuikaCVS:&quot;/wakaba/wiki/SuikaWiki/Plugin/mkplugin.pl&quot;" a0:resScheme="IW">IW:SuikaCVS:&quot;/wakaba/wiki/SuikaWiki/Plugin/mkplugin.pl&quot;</a0:anchor-external>
で perl module に変換しても構いません。 mkplugin.pl は本質的な処理ではない
plugin 界面の部分の code を自動生成することが出来ます。<ul><li><a0:anchor-end a0:anchor="14">[14]</a0:anchor-end> <a0:weak>2003-03-28 18:19</a0:weak> <em><a0:anchor>わかば</a0:anchor></em>: 収拾付かなくなりつつあります。。。
<a0:form ref="comment"></a0:form></li></ul></p><section><h1>制限事項</h1><ul><li><a0:anchor-end a0:anchor="7">[7]</a0:anchor-end> plugin 呼び出し側で致命的エラーの回避は行っていません。
つまり、 perl が死ぬ様な処理を行うと SuikaWiki 全体が死にます。<ul><li>これは仕様です。必要なら plugin 内でエラー回避して下さい。</li></ul></li><li><a0:anchor-end a0:anchor="9">[9]</a0:anchor-end> <a0:anchor>名前空間</a0:anchor>のようなものはありませんし、導入する予定もありません。 (<a0:anchor-internal a0:anchor="1">&gt;&gt;1</a0:anchor-internal> の各文脈も名前空間といえば名前空間ですが、互いに完全に独立した空間です。)</li><li><a0:anchor-end a0:anchor="10">[10]</a0:anchor-end> <a0:anchor-internal a0:anchor="9">&gt;&gt;9</a0:anchor-internal> 同じ名前の plugin が定義されている場合、後で読み込まれた方が有効になります。 plugin の読み込み順は未定義です。</li><li><a0:anchor-end a0:anchor="13">[13]</a0:anchor-end> $p, $q は破壊しても良いが、 $o は破壊してはいけない
<a0:form ref="comment"></a0:form></li></ul></section><section><h1>メモ</h1><ul><li>他の Wiki のプラグイン実装については、 <a0:anchor>Wiki//Plugin</a0:anchor> を参照。</li><li><a0:anchor-end a0:anchor="15">[15]</a0:anchor-end> WikiPlugin module の license はどうなるんだろう? とふと思った。現在あるプラグインは全部 <a0:anchor>GPL</a0:anchor>2 だと思うけど、任意の誰かが作ったプラグインを任意のライセンスに出来るのかどうか。</li><li><a0:anchor-end a0:anchor="16">[16]</a0:anchor-end> <a0:anchor-internal a0:anchor="15">&gt;&gt;15</a0:anchor-internal> 確か、 <a0:anchor>Larry</a0:anchor> の <a0:anchor>perl</a0:anchor> module の license に関する見解は、<a0:anchor>リンク</a0:anchor>ではない、よって <a0:anchor>GPL</a0:anchor> 的制限は受けない、というのだったはず。で、 WikiPlugin も SuikaWiki Plugin API を呼んでるだけで実体は単なる perl module だから、この論理を援用できる、つまり自由に設定できるはず。</li><li><a0:anchor-end a0:anchor="17">[17]</a0:anchor-end> <a0:anchor>.//wps</a0:anchor> で Plugin module を生成した時は plugin 固有 code 以外に <code>mkplugin.pl</code> の code も混じるけど、それ (<code>mkplugin.pl</code> の出力) については権利は主張しないというのが<a0:anchor>わかば</a0:anchor>の見解だったはず。よってコンパイル済み module の licencing も問題なし。</li><li><a0:anchor-end a0:anchor="18">[18]</a0:anchor-end> <a0:anchor-internal a0:anchor="16">&gt;&gt;16</a0:anchor-internal>-17 とはいうものの実際には、他のモジュールとかから/との切り貼りを考えると、同じく GNU GPL 2 にしておくか、又は <a0:anchor>perlと同じライセンス</a0:anchor>にするのがお勧め。</li></ul></section></body></html>