[1] SuikaWiki/0.9 (SuikaWiki2 の標準記述書式) で WikiForm を使うためには、
の4つの書き方から1つ選びます。 普通は一番簡単な最初の形式でいいでしょう。
[3] 入力雛形・出力雛形・特性は、 Message::Util::Formatter の書式で記述します。 この書式は、簡単にいえば、 「普通」の文字列の中に、「%」 で始まる特別な意味を持たせた文字列を埋め込んだ物です。
例えば、
[2] 入力雛形は、 入力を受け付ける欄の構成を Message::Util::Formatter の書式で記述します。
例:
% で始まる部分 (規則) は、適当な入力欄に置きかえられます。
短めの文字列を入力する
%text;
の他にも、幾つかの種類が用意されています。
%text;
%textarea;
%check;
%submit;
実際には他にもまだまだあります。 追加の WikiPlugin module で拡張された物を使うことも出来ます。 現在使用出来るものの一覧は、 Wiki//Plugin//Info を見て下さい。 「form-input」に分類されているものを使えます。
[5] >>2 の例のように、規則には引数を指定できます。 引数を使うときめ細かい制御ができます。 (中には必須の引数もあります。)
使用出来る引数は、規則により異なります。 同じ名前の引数でも、規則によって使われ方が異なることもありますから、注意して下さい。
主な引数:
id
-
を使うことが出来ます。大文字・小文字は区別されます。default
label
description
size
lines
SuikaWiki3 では、使用出来る引数の一覧も Wiki//Plugin//Info でみることができます。
[6] 入力雛形から作られた入力欄に、 誰かが何かを入力し、送信したとします。 出力雛形は、入力結果をどう処理するかの雛形として使われます。
出力雛形も、入力雛形と同じく、 Message::Util::Formatter の書式を使いますが、 その生成結果は SuikaWiki/0.9 の書式とみなされます。
例えば、
という出力雛形があるとします。 まず、入力結果が置きかえられます。
のようになります。次にこれが SuikaWiki/0.9 として処理されることになるので、 2 合と3 枚の部分が強調されることとなるのです。
[7] 出力雛形で使うことの出来る主な規則:
%text;
id
引数で指定した識別子を指定します。%index;
%date;
この他にも多くの規則があります。 一覧はやはり Wiki//Plugin//Info で見ることが出来ます。「form-template」に分類されている物が該当します。
[8] >>1 の3番目と4番目の書式では、
括弧内に識別子をつけることができます。
(この識別子と、入力雛形で使う id
引数の識別子は関係ありません。)
この識別子は、その WikiForm
を識別する物で、その WikiPage
内で固有の物でなければなりません。
英語のラテン文字で始まり、
英数字と -
で構成します。
大文字・小文字が区別されます。
[9] この識別子と特性の出力先指定を組み合わせることで、 入力欄と離れた位置に結果を出力することが出来ます。
[10] >>1 の2番目と4番目の書式では、 特性を記述できます。 特性とは、 WikiForm の結果出力先の制御や入力必須指定などです。
特性の記述のためにも、やはり Message::Util::Formatter の書式を使います。ただし、入出力の雛形とは異なって、特性の記述はその文字列としての意味はありません。
例:
[11] 特性で使える規則は、現在 2種類があります。
弧の他に追加の規則が将来定義されるかもしれません。 Wiki//Plugin//Info の分類「form-option」を確認して下さい。
form => 1 or 0
1
(既定値)、そうでないなら 0
です。
この値を 0
にすると、
これまでに説明したのよりもずっと柔軟な処理ができるようになりますが、
その分用意しなければならないことが増えます。 (ここでは詳しく説明しません。)page => {WikiName}
id
引数も指定しないと行けません。id => {WikiForm ID}
page
引数が指定されているなら、その WikiPage 内で識別子を探します。reverse
[13] 百聞は一見に如かず、 ぜひ実例をごらんになってください。 有用な例が WikiFormCollection に多々集められています。
まずは既存の WikiForm の不満な点があれば、それを修正することから始めてみてはどうでしょうか。