Wikidot Formの作り方

wikidot-form.png

topimage: 'file:wikidot-form/wikidot-form.png'

Wikidotのデータフォーム機能とは?

wikidotのデータフォームとは、wikiを編集するときのテンプレートを作ることができる機能です。

こんな人に向いています!

  • データベースを作りたいです
  • 論文の整理をしていて、ISBN,タイトル、出版年、出版社、言語などまとめたい
  • クラブの会員を整理整頓したい
  • ゲームのコレクションをしたい

そしてコンソールごとにフィルタをかけてリストアップしたい。

  • Wikidotの構文はよくわからないけど、とりあえず簡単にフォームを入力するだけでページが出来たらいいな

あるいは、あるWikidotオーナーがいて、wikidot構文を知らない人にも簡単に入力できるようにさせたい場合、等。
つまり、
Wikidotのページに特定のフォーマットを設けたい場合に向いているのだ。
私の場合は、毎ページ、トップ画像と、中身、参照文献、という形式にしたいのよね。
更に参照文献は1個とは限らず、可変なのだ。

実際のデモページ

http://vineyard.wikidot.com/bands:main

pagepath.wikidot.com shows examples of the pagepath concept.
There is also a pagepath example using the band example at http://vineyard.wikidot.com/bands

データフォーム式Wikidotページの作り方

同じカテゴリーに普通のwikiページとデータフォーム式wikiページを混ぜることはできないので要注意。

Step1: カテゴリ名:_templateというページを作る

たとえば、、、form:_templateというページを作る。
アンバースコアではじまるページはwikidotの中では基本的に特別なページである。
_templateという名前のついているページはライブテンプレートと呼ばれている。

Step2.ライブテンプレートページに[[form]][[/form]]をコードを書く

普通の_tempaplateじゃないページに[[form]]….[[/form]]と書いても効き目はありません。
ライブテンプレートのページに[[form]]…[[/form]]と書くと、そのカテゴリ以下のページの編集画面が変わります!

たとえば、次のようなコードを書いておく。\nこの[[form]]というコードは_template系のページの時だけ有効になるのだ

[[form]]
fields:
  type:
    label: Music type
    type: select
    values:
      0: Classical
      1: Country
      2: Folk
      3: Indie\n      4: Jazz\n      5: Pop\n      6: Rock\n    default: 6
  bandimage:\n    label: Image\n    type: file\n  bandwebsite:\n    label: Band website
    type: url\n  current:\n    label: Currently Recording\n    type: select\n    values:
      0: \"Yes\"\n      1: \"No\"\n    default: 0
[[/form]]

すると、なんとこんなページができちゃうのだ
wikidot-form.png
データフォーム化したページで画像を参照にしたいときは、今までと違って

/file:ページ名/ファイル名

になるので要注意

可能なフォームのタイプ

text select checkbox file wiki static hidden password

フォームを書くときはインデントが大事★

Please note that the indentation shown in the example below is important because
正しくインデントされていないフィールドは表示されません。
Your structure should look like the example below,\n but note that you don't have to enter a field typewidthは必ずしも書かなくてもよいです。
もしtypeに何も書かなかったら、デフォルトの設定でテキストフィールドになります。

フォーム部品の書き方

label: 値

コロン:と値の間必ず半角スペースが必要です。

フォームの構文が正しくかけたかチェックするページ

tsangkさんのページ

siteManagerにて

データフォーム式のページにはautonumberingしておくのがお勧めらしい。

データフォームページにはNewPageモジュールを書いておくとよい

[[/code]]Enter the name of the band and press the button:
[[module NewPage size="30" category="band" parent="bands" tags="rock" button="Add a new rock band"]]

formに書いた結果をページに表示させる

formを書いただけでは何も表示されない
formで送られてきたデータを使ってページを表示するコードを_tempalteに仕込もう
====でライブテンプレートページを区切る。
二重棒線の上に、「そのデータフォームを使ってどのようにページを表示したいか」を書く。
二重棒線の下には[[form]][[/form]]を書く

データフォーム表示構文

表示させたいもの コード \n データ 文字列 %%form_data{field}%% (except for images, video and email)
画像 %%form_raw{field}%% \n ラベル %%form_label{field}%%
ヒント %%form_hint{field}%%

Using the form we created above, the dataform structure, separator and layout are shown belo

サンプル

%%form_raw{bandimage}%%

\n\n++ %%title%%\n\nBand type: %%form_data{type}%%\nBand website: %%form_data{bandwebsite}%%\nIs the band currently recording?: %%form_data{current}%%

[[/code]]
こうすると、miffyのページを見よ
wikidot-data-forms

カテゴリトップページでデータをソートしたり、ピックアップしてリストアップしたりする

ListPagesモジュールでcategory=カテゴリ名を指定してページをリストアップすることにより、
データフォームに登録したページをリストアップすることができる。
ここまでは普通のページでもできることだけど、データフォーム式Wikidotページのすごいところは、
フィルタリングできること
たとえばこんなかんじでフォームを作ったとする

scotland:
  label: Next tour will visit Scotland\n  type: select\n  values:\n     info: No Info
     visit:\"Yes\"
     novisit:\"No\"

そして次のようにページをリストアップする。_scotland=\"visit\"というところに注目だ。
scotlandというフォームフィールドの中でvisitだったページだけを表示するのだ。
[[code type="cpp"]]
Aaa ヒントだよーん

biblabel: dataforms
type: ''
bibliography: 'http://handbook.wikidot.com/en:data-forms'
bibname: 'Data Forms'


form

サポートサイト Wikidot.com form