■ about:テンプレートファイル ■

結殖自動のテンプレートファイル

 結殖自動はCSVファイルの内容をテンプレートに埋め込んで、ファイルとして書き出します。
  テンプレートの形式はHTMLで書き出すことを前提にして動作しますが、テンプレートの作り方次第でCSV形式や他のテキスト文書形式として書き出すこともできます。
  テンプレートの作り方ですが、基本的には普通に作ったHTMLまたはテキスト文書に「ヘッダ」「ファウンド」「ナッシング」「フッタ」の4つのエリアを示すタグを打ち込み、CSVファイルから取り出した情報を埋め込みたい場所にスクリプトファイルで設定した置換文字列を差し込めば出来上がります。

 具体的にどのような構造になっているかは、順を追って説明します。

結殖自動テンプレートの実際

 結殖自動のテンプレートを以下に示します。
  ここでは、カテゴリ別のリンク集を作ることを前提として、わかりやすいように必要最小限の構成で作成しています。
  基本的にHTMLの構造そのものですので、DreamWeaver や ホームページビルダーのようなツールから画面をみながら編集することができます。
  また、HTMLに精通している方や、CSVデータのテーブルを並べ替えて新しいCSVデータとして書き出すといった用途に使う場合などはテキストエディタでの編集でも充分対応可能です。
  ※このテンプレートファイルをブラウザで見てみたい場合はこちらをクリックしてください。
  ※ちなみに、CSVがコレスクリプトがコレで、このセットで出来上がったのがコレです。

<!--head-->
<html>
<head>
<title>リンク:{\title\}</title>
<style type="text/css">
<!--
body {text-align: center;}
-->
</style>
</head>
<body>
<h3>リンク:{\title\}{\hit_w\}件)</h3>
<table width="400" border="1" cellspacing="0" cellpadding="4">
<tr><td>
<!--/head-->

<!--body_found-->
<p>{$count_s$} :■<a href="{$リンク$}">{$名前$}</a></p>
<!--/body_found-->

<!--body_nothing-->
<p>おさがしのページはありません </p>
<!--/body_nothing-->

<!--foot-->
</td></tr></table>
<p><a href="tv.html">テレビ</a></p>
<p><a href="np.html">新聞</a></p>
<p><a href="ug.html">アングラ</a></p>
<p><a href="etc.html">その他</a></p>
</body>
</html>
<!--/foot-->

 このテンプレートの中で、太字の部分と赤字で示した部分が結殖自動で使用される部分です。
  また、結殖自動で読み込むことのできるテキストファイルは Shift-JIS+CRLF のフォーマットで作られているもののみとなります(普通にWindows上でやりとりされているものはほぼこのフォーマットになっていると思います)。

結殖自動テンプレートの各パート

 結殖自動テンプレート以下の各パートで構成されています。

1)ヘッダパート(<!--head--><!--/head-->

 ヘッダパートはテンプレートの<!--head-->〜<!--/head-->で囲まれた部分になります。
  このパートは、スクリプトで設定したチェック用の文字列がヒットするしないにかかわらず、つねに文章の先頭に差し込まれます。
  また、{$〜$} 形式の置換文字列は作用しませんが、{\〜\}形式の置換文字列を使用することができますので、結殖自動で用意されている{\〜\}形式の置換文字列やスクリプトで設定した置換文字列を反映することが可能となっています。
  なを、<!--head-->タグ、<!--/head-->タグと同じ行に他の文章が含まれていた場合、エラーにはなりませんが、それらの文章は生成文書に反映されません。

2)ファウンドパート(<!--body_found-->〜<!--/body_found-->(必須)

 結殖自動は、チェック用文字列が「ヒット」した場合に(これを「フラグが立つ」と呼びます)CSVの情報をファウンドパートに埋め込み、ヘッダパートの後に連結します
  このパートのみ、{$〜$} 形式、{\〜\} 形式両方の置換文字列が適用されますので、{$〜$}タグはこのパートに集中することになりますし、1番つくり甲斐のある部分だと思います。
  なを、ヘッダパート同様、<!--body_found-->タグ、<!--/body_found-->タグと同じ行に他の文章が含まれていても、それらの文章は生成文書に反映されません。

3)ナッシングパート(<!--body_nothing--><!--/body_nothing-->

 このパートに記述された文字列は、チェック文字列が1件もヒットしなかった場合に代替文書としてヘッダパートとフッタパートの間に挟みこまれます。
  このパートにおいても、、<!--body_nothing-->タグ、<!--/body_nothing-->タグと同じ行に他の文章が含まれていても、それらの文章は生成文書に反映されません。

4)フッターパート(<!--foot--><!--/foot-->

 このパートは、最終的に出来上がったファイルの最後尾に連結されます。
  その他の扱いは、ヘッダパートと共通になっています。
  はやり、<!--foot-->タグ、<!--/foot-->タグと同じ行に他の文章が含まれていても、それらの文章は生成文書に反映されません。
  しつこいですね、すいません(^^;;。

 これらのパートの動きを簡単にまとめると、以下のような感じになります。

チェック文字列が3件ヒットした場合

  ヘッダパート
  ファウンドパート1
  ファウンドパート2
  ファウンドパート3
  フッターパート

チェック文字列がヒットしなかった場合

  ヘッダパート
  ナッシングパート
  フッターパート 

 大体のイメージがつかめましたでしょうか。

置換文字列を埋め込む

  結殖自動では、テンプレート内の置換文字列の内容をCSVファイルにあるテーブルの情報に置き換えてファイルとして書き出します。
  テンプレートに埋め込むことのできる置換文字列は大きく分けて2種類あります。

{\〜\} ページ全体に作用する文字列
{$〜$} ファウンドパートのみに作用する文字列

 各パートの説明の中にも記述がありますが、サンプルのテンプレートの中にも、ページそのものに作用する文字列として、タイトル部分に {\title\} / {\hit_w\} のような文字列がヘッダ部分に埋め込んでありますし、ファウンドパートにはヒット時のみ有効な置換文字列として {$count_s$} / {$リンク$} / {$名前$} といった文字列が埋め込んであります。
  また、さらに細分化すると、結殖自動で用意している置換文字列と、ユーザーが用意する文字列に分けることができます。
  そのうち、結殖自動では現在以下のような置換文字列が用意されています。

  {\title\}	 ----スクリプト上でタイトルとして設定された文字列に置換
  {\date\}     ----現在の日付に置換     (全角)
  {\hit_s\}    ----ページ内の全ヒット数に置換(半角)
  {\hit_w\}    ----ページ内の全ヒット数に置換(全角)
  {$count_s$}  ----連番のカウントに置換 (半角)
  {$count_w$}  ----連番のカウントに置換 (全角)

 {\hit_*\}{$count_*$} の使い分けなども、サンプルのテンプレートを見ていただけるとイメージできるかと思います。
 ユーザー設定の置換文字列については、スクリプトについてのページをご覧いただければ詳しい説明があります。

テンプレートのファイル形式

 テンプレートファイルは、現在の所 Shift-JIS / CRLF改行 フォーマットのテキストファイルにのみ対応しています。
 残念ながらEUCやユニコードで書き出されたファイルには対応していませんのでご注意ください。

おまけ

 テンプレートファイルは、先にあげたスクリプトとCSVと別のテンプレートを使って、再度ページを書き出してみました
  テンプレートが変わるだけで、ぐっと雰囲気が変化するのがわかりますね。



index