バージョン 1.2.2 より、変数のあるなしによって条件分岐する機能が利用できます。変数が無いとは、変数自体が定義されていないか、変数の値が、空文字列の場合で、両者は区別されません。また、1.3.3 からは、ファイルの有無による条件分岐 もできます。さらに、1.4.2 からは、文字列に等しいかどうかや、正規表現にマッチしたかどうかでも分岐 できます。
この機能により、例えば、サンプル画像がある場合のみ出力する部分などを作成できるので、より柔軟に HTML を出力できます。
上の例の enum.html 生成中には、前のレコードは存在しないので、〔|-ファイル名| ...〕
の部分は出力されません。一方、次のファイルは存在するので、<li><a href="var.html">次へ (var 暗黙の型)</a>
が出力されます。
逆に、前のレコードが存在しないときのみ出力したい文字列を指定することもできます。
〔|-ファイル名|変数がある場合に出力される文字列|無い場合に出力される文字列〕
〔〕は、全角の括弧、|は全角の縦棒です。〔〕はネストできますし※、〔〕内で、《》や【】も使用できます。
※ バージョン 1.4 以降では、〔〕内で〔〕が使えます
v.1.4.3 から、IF 文〔〕の構文が新しくなりました。前の構文も使えますが、新しいものの方が強力※ です。新しい構文では、〔 に続けて、区切り記号を指定します。
区切り記号として使えるのは、|(全角)、| (半角)、:(全角)、: (半角)です。
※ 古い構文では、正規表現内で、: (半角) を使えません。
1文字目で、|(全角) 以外の記号を指定すれば普通に使えます。HTML では、文字コード表現、|
を使う方法もあります。
ファイルの有無による条件を利用するには、変数名のかわりに、?ファイル名 を使います。例えば、↓のようになります。
〔|?filename.txt|<pre>《t2<>:filename.txt》</pre>〕
ファイル名は、インクルード命令 と同様に、テンプレートファイルからの相対パスで指定します。上の例では、filename.txt が存在する場合、pre タグ内に filename.txt の内容を挿入しています。t2<> は、テキストファイルを挿入するときに便利なオプションで、タブが 2 つの空白に、<、> がそれぞれ <、> に変換されます。
文字列の比較によって分岐するには、条件内で = (半角イコール)、==、~ (半角チルダ)、~= のいづれかを使用します。それぞれの左辺には変数名、右辺には比較する文字列 (=、== の場合) や正規表現 (~、~= の場合) を書きます。
http://abc.com/〔|ファイル名=index.html||【ファイル名】〕
↑は、【ファイル名】が index.html と等しい場合に、http://abc.com/、等しく無い場合は、http://abc.com/【ファイル名】 を出力する例です。= と == は、ほぼ同じ意味ですが、= ではアルファベットの大文字、小文字が区別されません。上の例では、= を使っているので、Index.HTML などにもマッチします。
http://abc.com/〔|ファイル名~^index\.||【ファイル名】〕
↑は、【ファイル名】が、正規表現
^index\.
とマッチする場合に、http://abc.com/、マッチしない場合は、http://abc.com/【ファイル名】
を出力する例です。~ と ~= は、ほぼ同じ意味ですが、~ ではアルファベットの大文字、小文字が区別されません。上の例では、~ を使っているので、Index.php などにもマッチします。
※ 現在のところ、()
や \1
により、マッチした部分を参照する機能はありません。
では、〔 に続けて区切り記号を指定する構文が使えません。〔 の次には、?、+、-、変数名を続けます。1.2.3 以降のバージョンでは、区切り記号に、|(全角)、: (半角) の 2 つが使用でき、最初に表れた方が区切り記号として解釈されます※。
※ 正規表現内で、: (半角) を使えないので、新しい構文の方が強力です。
バージョン 1.2.2 以前のバージョンでは、|のかわりに : (半角コロン) しか使えませんでした。1.2.3 以降では、両方とも使えますが※、|を推奨します。: は、html でよく利用されるためです。
※ 1.2.3 以降では、|と : のうち、〔〕内で最初に現れた方が特殊記号として扱われるので、例えば、|を使用した場合には、: は通常の文字として扱われます。
ご意見・ご要望などは
フォームメール
から送信してください。
更新情報は、
ブログ
でも配信してます。