「HTML 自動生成するノ」では、1 件の データレコード に対し HTML ファイル を 1 つ自動生成します。そのときにテンプレート(雛形)として使用するファイルが HTML テンプレートです。例を見たほうがわかりやすいので↓を見てください。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta name="keywords" content="c#,【キーワード】"> <meta name="description" content="c++ プログラマが c# 【タイトル】 について解説"> <title>【タイトル】 - c++ 使いの c# メモ</title> </head> <body> <h1>c# 【タイトル】</h1> 【本文】 <h2>関連リンク</h2> <p> 【関連リンク】 </p> <h2>となりのページ</h2> <p> <li><a href="【-ファイル名】">前へ (【-タイトル】)</a> <li><a href="【+ファイル名】">次へ (【+タイトル】)</a> </p> </body> </html>
【キーワード】
や【タイトル】
の部分がデータ項目に置き替わります。キーワード
などの項目名は自由に設定できますが、【】
、+
、-
、:
、~
、=
、改行記号、を含む項目名は使用できません※。とはいえ、記号全般を含めない方が無難です。
※ 半角コロン (:) は、バージョン 1.4.1 から、半角チルダ (~)、半角イコール (=) は、バージョン 1.4.2 から特殊記号に加わりました。
【+項目名】
とすると、次のレコードのデータ項目に置き替えることができます(最後のレコードの場合は空になります)。同様に、【-項目名】
で、前のレコードを参照できます。
上の例では、【-ファイル名】
が前のレコードのファイル名に、【+ファイル名】
が次のレコードのファイル名に置き替わります。その結果、となりのレコードから生成される HTML ファイルへのリンクを含む HTML ファイルが生成されます。
条件分岐命令〔〕 を使うと、前後にレコードが無い場合に出力しないようにすることもできます。↓がその例です。
〔+ファイル名|<li><a href="【+ファイル名】">次へ (【+タイトル】)</a>〕
特殊記号を出力する方法は、HTML 自動生成するノ 特殊記号 をご覧ください。
オプションは、変数名の前に : (半角コロン)で区切って指定します。例えば、
《+-?t2<>*bx:本文》
で全てのオプションが指定できます。ただし、<> の機能は、* に含まれるので、指定しなくても動きは同じです。また、+ と - を同時に指定すると相殺されてプラスマイナスゼロになります。さらに、? オプションは、インクルード命令との互換性のため用意されていますが、今のところ指定してもしなくても挙動に変化はありません。「本文」は参照する変数名の1例にあたります。
次のレコードを参照するときに指定します。+を重ねて指定しても、さらに先のレコードは参照できません※。
※ 前のバージョンとの互換性を確保するため、オプションが、+ のみ、もしくは - のみの場合には、: (半角コロン) を省略できます。
前のレコードを参照するときに指定します。-を重ねて指定しても、さらに前のレコードは参照できません。
変数が無い場合にエラーとして扱わないオプションですが、ディフォルトでもそうなので、指定しても挙動は変わりません。
データー内のタブを空白 4 文字で置き換える。t2 のように数字を 1 文字続けることで空白の文字数を変更可能。
データー内の < を < に置き換える。
データー内の > を > に置き換える。
データー内の 「HTML でそのまま表示できない記号」をエンコードする。
データー内の改行の前に <br> を付加。
挿入されるデーターもテンプレートファイルとして展開します。eXpand / eXecute の x。この機能を使うと、変数内で別の変数を参照することもできます。
名前 | Q |
s.s.software | 【名前】って何ですか? |
HTML 自動生成するノ | 【名前】って何ですか? |
【x:Q】
テンプレートファイルでは、変数 Q 内の【名前】を展開したいので、x オプションを指定します。今回の場合、名前内に展開したい要素は無いので、名前を参照するときには、【名前】と、【x:名前】で出力は変わりません。
【x:Q】の出力結果は、それぞれ、「s.s.softwareって何ですか?」、「HTML 自動生成するノって何ですか?」になります。今まで通り単に【Q】と書いた場合は、両方とも「【名前】って何ですか?」のままになるのでご注意ください。
ご意見・ご要望などは
フォームメール
から送信してください。
更新情報は、
ブログ
でも配信してます。