Web処理系 |
頁生成 |
最終更新日:2006/09/04
新規 |
頁毎に雛型があり、それをベースにして自動生成する。
●Web頁
- Web頁は一から生成するのではなく、見本またはテンプレートをツールで作成し、固定部分と変動部分に分け、変動部分のみ自動的にHTML文を挿入して完成させる方式が良い。こうすれば、HTMLの文法を詳しく知る必要もないし、確実である。
- 基本的には、テンプレートのhtmファイルをプログラムで読み込み、変動部分であれば、必要な文字列を生成して差し替える方法で良い。
●固定と変動(変数)の分離
ツール(FrontPageなど)で作成したテンプレートをHTMLで見ると、変動部分は種々のTAGで囲まれているが、基本的に改行は無視されるので、変動(変数)部分の前後に改行を挿入して独立した行にしてしまう。
○オリジナルのテンプレート例
赤字部分が変動(変数)部分である。TAGに囲まれているので、読んだ後処理しづらい。
<html>
<head>
<meta http-equiv="Content-Language" content="ja">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
<title>タイトル</title>
</head>
<body bgcolor="#C0C0C0">
<p align="center">ネイチャーフォト 日本産植物 (帰化植物含む)</p>
<p align="center"><b><font size="5" color="#008000">和名</font></b></p>
<p align="center"><font size="3">別名</font></p>
<p align="center"><i>学名<br></i>
分類系統</p>
○変数を分離したもの (実際に使用するテンプレートとなる)
適当に改行を挿入し、変数を分離したもの。変数が一行になっており、その行を入れ替えれば良いことになる。
<html>
<head>
<meta http-equiv="Content-Language" content="ja">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
<title>
タイトル
</title>
</head>
<body bgcolor="#C0C0C0">
<p align="center">ネイチャーフォト 日本産植物 (帰化植物含む)</p>
<p align="center"><b><font size="5" color="#008000">
和名
</font></b></p>
<p align="center">
<font size="3">
別名
</font></p>
<p align="center"><i>
学名
<br>
</i>
分類系統
</p>
プログラム例 (VB)
Hにある行が読み込まれているとする。
Select Case H
Case "タイトル"
'本当のタイトルを出力する
Case "和名"
'本当の和名を出力する
Case "・・・・・・"
・・・・・・・・・
Case Else
'Hをそのまま出力する
End Select
●プログラム上の扱い
- htmファイルは完全なテキストファイルなので、入力は LineInput
で行単位で文字変数に読み込めばよい。LineInputは改行までを改行を含めないで全て文字列として読み込む関数である。
- htmの出力は、Print関数で行単位で行う。この時末尾に必ず、改行(vbCRLF)を付加しておく。
-
HTMLでは、全体としては文字列ではある(HTML的には命令語となる)が、リテラルを表すのに”を使用している。このダブルクオテーションをリテラルとして出力するのは面倒くさいので、”は’で置き換えると良い。’も”と同じ機能を果たす。SQL文と同じ。
- テンプレートは一気に文字列配列に読んでおけば、繰り返し利用できる。
●リンク情報の生成
URL以外は全て相対パス形式となる。AからBにリンクする場合は、A、Bの共通で最下位の親フォルダまで戻り、そこからのパスを指定することになる。
例えば、上図では、
../FZ/B
が、リンク情報となる。../ は一つ上に戻る意味がある。Bは頁や画像ファイルである。
|