!フォーム変数
!!システム用
* WikiNameの形式のフォーム変数はシステムが使用します。
* 1文字のフォーム変数はシステムが使用します。
 :a:-
 :b:-
 :c:エンコーディング指定(u,s,e)
 :d:最終更新のタイムスタンプ
 :e:編集レイアウト指定
 :f:機能指定
 :g:-
 :h:テーマ指定
 :i:-
 :j:-
 :k:-
 :l:LANG指定
 :m:レイアウト指定
 :n:-
 :o:静的HTMLの更新
 :p:ページ名
 :q:-
 :r:SelfPageのときに表示するページ構成
 :s:スタイル
 :t:ページの本文
 :u:EditPageで内容の置換か追加書きか
 :v:バージョン
 :w:静的HTMLを出力するか？
 :x:-
 :y:-
 :z:-

!!プラグイン用
* 一般のフォーム変数はプラグイン名で始めるようにしてください。
* システムが使用するプラグイン用のフォーム変数はpi_で始めます。
 :pi_name   :プラグインの名前
 :pi_id     :プラグインのID
 :pi_inline :プラグインがインラインか？
 :pi_plain  :プラグインのプレーンテキスト
 :pi_\d     :プラグインのパラメタ（\dは配列番号）

!設定値
1.7以前は定数を使用していましたが、1.8以降はHashに変更しました。

設定値は以下の表記を使用しています。
:(text)   :文字列です。
:(number) :数値です。
:(path)   :サーバ上のディレクトリのパスをフルパスで指定します。
:(uri)    :ブラウザで参照可能なURIを指定します。
:(array)  :文字列の配列を指定します。{{ ['xxx','yyy', ... ] }}のような形式です。

//==Settings
:ADDRESS       :ヘッダとフッタに出力するE-Mailアドレス
    アドレスを公開したくない場合は入力しないでください。

    ||''name''     ||ADDRESS
    ||''form''     ||text
    ||''type''     ||(any)

:ADMIN         :管理者アカウント
    すべてのページに対しすべての権限を持ちます。

    ||''name''     ||ADMIN
    ||''form''     ||text
    ||''type''     ||(any)

:ALTREFER      :参照元ページのページ名変更
    ページ名の変更で、参照元ページに記述されているページ名を置換するかどうかを指定します。
    ページ名の置換はページの内容を生成しなおすため、表記やインデントが変更されてしまうなど
    意図しない修正が行われる可能性があります。
    'replace'を指定すると単純文字列マッチングのみを行って、ページ名を置換します。
    そのため、本来ページ名ではないpreの中なども置き換えてしまいます。
    ただし、表記やインデントが変更されてしまうことはありません。
    また、構文解析がされないので実行速度も速くなります。

    ||''name''     ||ALTREFER
    ||''form''     ||radio
    ||''type''     ||true, false, replace

:ATTACHDIR     :添付ファイルのディレクトリ
    attachプラグインで使用する添付ファイルの格納先ディレクトリ。

    ||''name''     ||ATTACHDIR
    ||''form''     ||text
    ||''type''     ||(path)

:ATTACHURI     :添付ファイルのディレクトリへのURI
    ATTACHDIRにアクセスするURI。
    file:// で始まるパスを指定するとIEやOperaでは共有フォルダの直接参照となります。
    Windowsで共有フォルダを利用している環境には file:// で始まるURIがお薦めです。

    ||''name''     ||ATTACHURI
    ||''form''     ||text
    ||''type''     ||(uri)

:AUTHOR        :管理者の名前
    管理者の名前を指定します。
    ページのフッタやHTMLヘッダに出力されます。

    ||''name''     ||AUTHOR
    ||''form''     ||text
    ||''type''     ||(any)

:AUTHTYPE      :認証タイプ
    認証タイプには以下があります。
    ||none     ||noneは認証しないか認証情報(ユーザアカウント)を利用しません。
    ||www      ||wwwはWWWサーバで設定している認証にしたがって認証情報を利用します。
    ||vikiwiki ||vikiwikiはVikiWikiで設定している認証情報を利用します。認証方式は通常のBasic認証方式です。
    ||form     ||formはVikiWikiで設定している認証情報を利用します。認証方式はフォームとCookieによるセッション管理です。
    通常はwww認証かform認証を選択してください。

    ||''name''     ||AUTHTYPE
    ||''form''     ||select
    ||''type''     ||none, www, vikiwiki, form

:AUTOLINK      :自動リンク
    自動リンクとはページ名およびエイリアス名と一致する名前が文章中に出現したら
    リンクを貼ります。
    常にページ名と一致するか確認するため、性能があまりよくありません。

    ||''name''     ||AUTOLINK
    ||''form''     ||radio
    ||''type''     ||true, false

:BACKUP        :パックアップ
    ページのバックアップをするかどうか、または保存数を指定します。
    trueではすべての履歴をバックアップします。
    falseではバックアップをしません。
    数値を指定することでバックアップの保存数を指定します。

    ||''name''     ||BACKUP
    ||''form''     ||radio
    ||''type''     ||true, false, (number)

:BASEDIR       :ベースとなるローカルディレクトリ
    CGIと同じ場所にイメージファイルやCSSを置くことができない環境のための設定です。
    イメージファイルなどを保存するローカルのディレクトリを指定します。
    次のBASEURIとあわせて指定します。

    ||''name''     ||BASEDIR
    ||''form''     ||text
    ||''type''     ||(path)

:BASEURI       :ベースとなるURI
    上記のBASEDIRとあわせて指定します。
    BASEDIRを割り当てている仮想ディレクトリのURIを指定します。

    ||''name''     ||BASEURI
    ||''form''     ||text
    ||''type''     ||(uri)

:DIFFCMD       :diffコマンド
    ページの差分を作成するために使用する
    diffコマンドのコマンド文字列をprintf書式で指定します。
    通常は{{'diff %s %s'}}です。
    nilの場合、コマンドではなくVikiWikiのDiffモジュールを使用します。
    今のところ正しく動作しないのでコマンドによる方法にしています。

    ||''name''     ||DIFFCMD
    ||''form''     ||text
    ||''type''     ||(any)

:EDITFILEFROM  :ファイルの直接編集(変換元)
    ファイルの直接編集用リンクの変換元を指定します。
    変換元はサーバ上のローカルパスです。
    パスを文字列か正規表現で指定します。
    例えば、以下のように指定します。
    {{{
        "c:/data/wiki/"
        または
        /^c:\/data\/wiki\//i
    }}}
    ファイルの直接編集を有効にするには以下もあわせて設定します。
    - EDITFILETO
      下記の説明を参照してください。
    - FILEEXT
      デフォルトの拡張子がtxtの場合、常にブラウザに表示されてしまうブラウザもあるので
      EXTFILEでデフォルトの拡張子を変更してください。
    - FILEMODE
      ファイルのアクセス権を"660"にしてください。

    ||''name''     ||EDITFILEFROM
    ||''form''     ||text
    ||''type''     ||(path)

:EDITFILETO    :ファイルの直接編集(変換先)
    ファイルの直接編集用リンクの変換先を指定します。
    変換先はEDITFILEFROMに対応するブラウザから参照可能なパスです。
    通常file://で始まるパスです。
    例えば、以下のように指定します。
    {{{
        "file://server/share/wiki"
    }}}

    ||''name''     ||EDITFILETO
    ||''form''     ||text
    ||''type''     ||(uri)

:EDITSYSTEM    :管理者以外のシステム用ページの変更の可否
    レイアウトページなどのシステム側で用意しているページの編集の可否を指定します。
    システム用ページは予約されている（ReservedPageで表示される）ページです。

    ||''name''     ||EDITSYSTEM
    ||''form''     ||radio
    ||''type''     ||true, false

:EDITTHEME     :テーマの編集の可否
    テーマを編集できるかどうかを指定します。
    テーマをパス形式で指定している場合は編集できません。

    ||''name''     ||EDITTHEME
    ||''form''     ||radio
    ||''type''     ||true, false

:ENCODING      :デフォルトのエンコーディング
    ブラウザに送信されるデフォルトのエンコーディングを指定します。
    サーバ側の格納コードは$KCODEの値に依存します。

    ||''name''     ||ENCODING
    ||''form''     ||radio
    ||''type''     ||Shift_JIS, euc-jp, utf-8

:FILEEXT       :ページのファイルの拡張子
    テキストベースで格納されるページデータのファイルの拡張子を指定します。
    既存ファイルの拡張子はtool/chgext.rbで修正することができます。
    直接編集モードの時に指定します。

    ||''name''     ||FILEEXT
    ||''form''     ||text
    ||''type''     ||(any)

:FILEMODE      :ページファイルのアクセス権
    ページファイルのアクセス権をchmodの値と同じ。"777"、"400"などで指定します。
    直接編集モードの時に指定します。

    ||''name''     ||FILEMODE
    ||''form''     ||text
    ||''type''     ||(any)

:FOOTER        :フッタに出力する文字列
    フッタに出力する文字列を指定します。
    Inquery ～ の部分が指定した文字列に置き換わります。
    HTMLタグをそのまま使用できます。

    ||''name''     ||FOOTER
    ||''form''     ||textarea,80,5
    ||''type''     ||(any)

:GREPCMD       :grepコマンド
    ページ内の文字列検索をするために使用する
    grepコマンドのコマンド文字列をprintf書式で指定します。
    通常は{{'grep -n "%s" %s'}}です。
    nilの場合、コマンドではなくVikiWikiのGrepモジュールを使用します。

    ||''name''     ||GREPCMD
    ||''form''     ||text
    ||''type''     ||(any)

:HTMLTAG       :HTMLタグの直接指定
    HTMLタグをエスケープしないでそのまま出力します。
    <font color="silver">銀</font>と指定しても、
    通常はエスケープされページにfontの文字が表示されますが、
    このパラメタを指定するとfontタグが埋め込まれ、文字が銀色になります。
    誰でも書き込める通常のWikiでの使用は危険ですので、おやめください。
    CMS運用や書き込む人が決まっているグループウェアとしての利用では、
    融通の利かないWiki書式にとらわれることがなくなり、表現力がアップします。
    HTMLタグとして認識されるのは、{{/<\/?[A-Za-z]+[^<>]*>/}}でマッチする部分です。
    マッチしない部分での < や > は通常通りエスケープされます。
    文中に < や > を使用する場合は前後に空白を入れると間違いないでしょう。

    ||''name''     ||HTMLTAG
    ||''form''     ||radio
    ||''type''     ||true, false

:LANG          :デフォルトの言語
    デフォルトの言語を指定します。
    言語固有のページが存在する場合、それを表示します。
    英小文字2文字の文字列で指定します。

    ||''name''     ||LANG
    ||''form''     ||radio
    ||''type''     ||ja, en

:LANGS         :利用可能な言語
    利用可能な言語を文字列の配列で指定します。

    ||''name''     ||LANGS
    ||''form''     ||checkbox
    ||''type''     ||ja, en

:LANGSWITCH    :言語固有のページの切り替え
    言語固有のページをページ名の先頭に言語文字列を付加したものを使用します。
    たとえば、英語のSandBoxはEnSandBoxとなります。

    ||''name''     ||LANGSWITCH
    ||''form''     ||radio
    ||''type''     ||true, false

:LOG           :アクセスログの記録
    アクセスログの記録を指定します。
    ファイル名はaccess.logです。

    ファイルの形式は、yyyy-mm-dd hh:mm:ss.nnn＜タブ＞pid＜タブ＞CGIオブジェクトの内容

    ||''name''     ||LOG
    ||''form''     ||radio
    ||''type''     ||true, false

:LOGDIR        :ログの出力先ディレクトリ
    ログの出力先を指定します。
    上記のLOGパラメタでのアクセスログの他、debug.log、rescue.logの
    出力先も変更されます。

    ||''name''     ||LOGDIR
    ||''form''     ||text
    ||''type''     ||(path)

:MODIFYCHECK   :更新の衝突チェック
    更新の衝突をチェックするか指定します。

    ||''name''     ||MODIFYCHECK
    ||''form''     ||radio
    ||''type''     ||true, false

:NGWORDS       :不正な文字列の拒否
    不正な文字列を含むテキストの場合、ページの更新を拒否します。

    ||''name''     ||NGWORDS
    ||''form''     ||multi
    ||''type''     ||(any)

:OSCODE        :OSの文字コード
    OSの文字コードです。
    セットアップ時にLANGの値により設定されます。
    Windowsの場合はSJIS固定です。

    ||''name''     ||OSCODE
    ||''form''     ||radio
    ||''type''     ||s, e, u

:PAGENODE      :ページのノードの使用可否
    ページのノード(階層構造)を使用するかどうかを指定します。

    ||''name''     ||PAGENODE
    ||''form''     ||radio
    ||''type''     ||true, false

:RSSFILE       :RSSのファイル名
    RSSを出力するファイル名です。

    ||''name''     ||RSSFILE
    ||''form''     ||text
    ||''type''     ||(path)

:RSSNUM        :RSSに出力する数
    更新順にRSSは出力します。
    何番目までを出力するか数を指定します。

    ||''name''     ||RSSNUM
    ||''form''     ||text
    ||''type''     ||(number)

:SAFE          :プラグインのセーフレベル
    プラグインのセーフレベルを指定します。
    ||''Level''||''意味''
    || -4||rubyプラグインを$SAFE=0で実行します。
    || -3||rubyプラグインを$SAFE=1で実行します。
    || -2||rubyプラグインを$SAFE=2で実行します。
    || -1||rubyプラグインを$SAFE=3で実行します。
    ||  0||すべてのプラグインを使用できます。
    ||  1||HTMLタグを直接指定できるプラグインが使用できません。
    ||  2||Rubyスクリプトなど高度な制御が可能なプラグインが使用できません。
    ||  3||データを登録するプラグインが使用できません。
    ||  4||フォームを使用するプラグインが使用できません。
    ||  9||すべてのプラグインが使用できません。現状5が最大なので5以上の値はすべて同じ意味です。
    Internetで運用するなら9～3、
    グループウェアとして使用するなら2～0、
    Rubyをフルに活用したい場合は-1～-4を指定します。

    ||''name''     ||SAFE
    ||''form''     ||select
    ||''type''     ||-4, -3, -2, -1, 0, 1, 2, 3, 4, 9

:SCRIPT_NAME   :CGIのURI
    CGIのURIを指定します。

    ||''name''     ||SCRIPT_NAME
    ||''form''     ||text
    ||''type''     ||(uri)

:SHORTWIKI     :短縮名の指定
    短縮名を使用するかを指定します。
    :wildcard:ワイルドカードを使用した指定方法です。
              {{[[F*P*]]}}はFrontPageを指定したことになります。
    :abbrev  :省略形式を使用した指定方法です。
              {{[[SB]]}}はSandBoxを指定したことになります。
    複数ヒットする場合は最初に見つかったページとなります。

    ||''name''     ||SHORTWIKI
    ||''form''     ||radio
    ||''type''     ||wildcard, abbrev, nil

:STATICDIR     :静的HTMLを出力するディレクトリ
    静的HTMLを出力するにはこのパラメタ指定が必ず必要です。
    指定していない場合は静的HTMLを出力しません。

    ||''name''     ||STATICDIR
    ||''form''     ||text
    ||''type''     ||(path)

:STATICEXCEPT  :静的HTMLの除外するディレクトリ
    静的HTMLの生成先の特定のディレクトリを参照しないようにします。
    除外するディレクトリ名を配列形式({{['dir1','dir2',...]}})で指定します。

    ||''name''     ||STATICEXCEPT
    ||''form''     ||multi
    ||''type''     ||(path)

:STATICIMG     :静的HTMLのimgディレクトリの扱い
    静的HTMLでのimgディレクトリの扱いを指定します。
    パラメタと意味は以下のとおりです。
    ||copy    ||明示的なコピー操作をしなければ静的HTML側に反映されません。
    ||sync    ||イメージの更新操作があった場合、同時に静的HTML側も更新されます。
    ||dynamic ||動的ページでも静的HTMLでも動的ページ側を共有します。
    ||static  ||動的ページでも静的HTMLでも静的HTML側を共有します。
    動的ページは自分しかアクセスできないようにするCMS的な使用では
    同期を取るsyncか静的HTML側を使用するstaticを指定します。

    ||''name''     ||STATICIMG
    ||''form''     ||radio
    ||''type''     ||copy, sync, dynamic, static, nil

:STATICTHEME   :静的HTMLのthemeディレクトリの扱い
    静的HTMLでのthemeディレクトリの扱いを指定します。
    詳細はSTATICIMGを参照してください。

    ||''name''     ||STATICTHEME
    ||''form''     ||radio
    ||''type''     ||copy, sync, dynamic, static, nil

:STATICTITLE   :静的HTMLのタイトルの表示形式
    静的HTMLで出力するタイトルの形式を指定します。
    'page'と指定するとタイトルがページ名となります。

    ||''name''     ||STATICTITLE
    ||''form''     ||text
    ||''type''     ||(any)

:STATICURI     :静的HTMLのURI
    静的HTMMLにアクセスするためのURIを絶対指定します。
    nilを指定すると相対パスで静的HTML内のパスを記述します。

    ||''name''     ||STATICURI
    ||''form''     ||text
    ||''type''     ||(uri)

:THEMEBASE     :ベースとするテーマ
    サイドバーのCSSなどベースとするCSSを指定します。
    テーマの名前を配列形式で指定します。

    ||''name''     ||THEMEBASE
    ||''form''     ||multi
    ||''type''     ||(uri)

:THEMECSS      :テーマ
    テーマとなるCSSを指定します。
    CSSへのURIかthemeディレクトリ配下に格納されている
    テーマの名前を指定します。

    ||''name''     ||THEMECSS
    ||''form''     ||text
    ||''type''     ||(uri)

:TIMEOUT       :VikiWiki認証でのタイムアウト時間(秒)
    VikiWiki認証はCookieを使用して認証情報を保持しています。
    認証情報を保持し続ける時間を指定します。

    ||''name''     ||TIMEOUT
    ||''form''     ||text
    ||''type''     ||(number)

:TITLE         :タイトルの表示形式
    タイトルの表示形式を指定します。
    ページ名はpage､エイリアス名はaliasと指定します。

    ||''name''     ||TITLE
    ||''form''     ||text
    ||''type''     ||(text)

:TOPPAGE       :トップページの名前
    トップページの名前を指定します。

    ||''name''     ||TOPPAGE
    ||''form''     ||text
    ||''type''     ||(text)

:WIKIFARM      :WikiFarmの経営
    WikiFarmを経営するかを指定します。
    1.8.3以降ではWikiFarmを経営する場合、ファーム名がInteWikiNameとして解釈されるようになります。

    ||''name''     ||WIKIFARM
    ||''form''     ||radio
    ||''type''     ||true, false

:WIKIPARENT    :親のWikiのURI
    WikiFarmの場合に親のWikiへのURIが自動設定されます。

    ||''name''     ||WIKIPARENT
    ||''form''     ||text
    ||''type''     ||(uri)

:WIKISTYLES    :使用可能なWikiStyle
    VikiWikiで使用できるスタイルの中から使用するスタイルを
    WikiStyle文字列の配列で限定できます。
    先頭のスタイルがデフォルトとなります。

    ||''name''     ||WIKISTYLES
    ||''form''     ||multi
    ||''type''     ||(any)

//==Settings

!ファイルの格納先
<<<caution
これらの設定は上級者向けです。
通常は設定しないでください。
>>>

以下のコメントにはさまれたユーザ定義エリアに設定する必要があります。
{{{
# *** begin user's definitions ***
'DATADIR' => '/xxx/data',
：
# *** end user's definitions ***
}}}

以下のディレクトリは通常 BASEDIR と BASEURI 配下に設置されます。
これらを設定することで BASEDIR とは異なる場所に設置することができます。
主に、ETCDIR、TEXTDIR、DATADIRをWebから見えない場所に配置する場合に使用します。

:TEXTDIR       :textディレクトリ
:DATADIR       :dataディレクトリ
:ETCDIR        :etcディレクトリ
:FARMDIR       :farmディレクトリ
:FARMURI       :farmに対応するURI
:IMGDIR        :imgディレクトリ
:IMGURI        :imgに対応するURI
:THEMEDIR      :themeディレクトリ
:THEMEURI      :themeに対応するURI

dataディレクトリのファイルは個別に格納先を指定することができます。
特に同一サーバの複数のサイトでInterWikiNameを共有したい場合に、
DATAFILE_INTERWIKIに同じファイルを指定する、といった使い方があります。
他にはDATAFILE_ADMIN、DATAFILE_ACLであれば共有する目的で利用できます。

:DATAFILE_INTERWIKI:InterWikiNameの情報ファイルです。
:DATAFILE_ADMIN    :管理者の情報ファイルです。
:DATAFILE_ACL      :アクセス制御リストの情報ファイルです。
:DATAFILE_ALIAS    :エイリアス名の情報ファイルです。
:DATAFILE_LINK     :バックリンクの情報ファイルです。
:DATAFILE_COUNT    :アクセスカウンタの情報ファイルです。
:DATAFILE_INDEX    :索引の情報ファイルです。
:DATAFILE_FARM     :WikiFarmの情報ファイルです。

