SiteGeneratorによるサイト構築の流れとsite.xml
ここではSiteGeneratorによるサイトの構築方法を説明する.
SiteGeneratorによるサイト構築の流れを以下に示す.
- site.xmlの記述
- site.xmlに基づいたディレクトリと各XML文書の作成
- siteGeneratorの実行
- 生成されたファイルのアップ
SiteGeneratorは,サイトの構成情報を記述したXML文書を指定して実行する.
$ siteGenerator.pl site.xmlサイトの構成情報を記述したXML文書のファイル名はなんでもよいが,ここでは便宜上site.xmlとする.site.xmlはsite.dtdに従わなくてはならない.SiteGeneratorは,site.xmlを読み込んでサイトに関する基本情報,読み込むべきXML文書を判断し,ページを自動生成する.生成されるHTML文書はoutputdirで指定した出力ディレクトリ以下にinputdirと同じディレクトリ構成で出力される.,基本的にinputdirで指定したXML文書の格納ディレクトリと同じディレクトリ構成をとる.
site.xmlのルート要素siteの最初の子要素はbaseである.この要素属性や内容には,サイトに関する基本情報を記述する.baseには三つの必須属性がある.
- url
- 生成するサイトのURL.自動生成されるページ中の自動生成されるリンクはこの属性の値をもとに生成される.
- outputdir
- 生成したファイルの出力先トップディレクトリ.
- inputdir
- ファイルを生成するもとになるXML文書を格納したトップディレクトリへのパス.
- title
- サイトのタイトル.
- description
- サイトの概要
- webMaster
- サイトの管理者情報.webMasterの子要素の説明を以下に示す.
- name
- サイト管理者の名前やハンドルネーム
- サイト管理者のメールアドレス
要素contentsには,サイトのコンテンツ情報を記述する.contents要素にはtop,diary,feature,siteImportの4種類の子ノードがある.これら4種類の要素はコンテンツのタイプを意味する.
- top
- トップページ
- diary
- 日記コーナー
- feature
- 特集記事などカテゴリとサブカテゴリに階層化された記事のコーナー
- siteImport
- SiteGeneratorで生成されないコーナー.これはリンクをナビゲーター部に記述するために使用する.
※属性dirの値に"../../hoge"などとしても動作するかもしれないが,これはSiteGeneratorの想定外の設定である.
SiteGeneratorはcontentsの上記4つの子要素のうち,topとsiteImportに関してはコンテンツのXML文書を使用しない.siteImportは機能的に必要ないのは明確である.topはXML文書のかわりにテンプレートファイルを使用する.残る二つdiaryとfeatureでは,属性dirの値で示すディレクトリの下からXML文書をスキャンしてHTML文書を生成する.
要素contentsの子要素featureはnameの他に0個以上の要素categoryを持つ.要素categoryはさらに0個以上の個要素subCategoryを持つ.要素categoryとsubCategoryはそれぞれ必須属性id,dirを持つ.属性idの値には
親要素の属性idの値.値を指定する.dirの値にはコンテンツが格納されているディレクトリを指定する.また,要素categoryとsubCategoryはそれぞれ子要素nameとsummeryを持つ.これらの内容には(サブ)カテゴリ名,(サブ)カテゴリの概要を記述する.summeryの内容はカテゴリのインデクスページに記述される.以下に例を示す.
<feature id="feature" dir="featureDir">
<name>HOGE</name>
<category id="feature.category" dir="categoryDir">
<name>FUGA</name>
<summery>カテゴリFUGAの概要</summery>
<subCategory id="feature.category.subCategory" dir="subCategoryDir">
<name>FOO</name>
<summery>サブカテゴリFOOの概要</summery>
</subCategory>
</category>
</feature>
この場合,ディレクトリ構成は
inputdirの値/featureDir/categoryDir/subCategoryDir/となり,各記事のXML文書はこの下に置く(重要).この場合,
outputdirの値/featureDir/categoryDir/にカテゴリ毎のインデクスページが出力される.
要素diaryは要素top,siteImportと同じ属性と子要素を持つが,日記用XML文書を読み込む点が異なる.このXML文書は以下に置く必要がある.以下に例を示す.
<diary id="diary" dir="diaryDir">
<name>HOGEFUGA日記</name>
</diary>
この場合,ディレクトリ
inputdirの値/diaryDir/YYYY/MM/を作成し,その下にXML文書を格納する.YYYYは年(4桁),MMは月(2桁)である.この例の場合,最新の日記兼過去の日記へのインデクスページが
inputdirの値/diaryDir/に作成される.

