ファイヤープロジェクト
SiteGeneratorによるサイト構築の流れとsite.xml
2003-08-16T19:15+09:00   matsu
ここではSiteGeneratorによるサイトの構築方法を説明する.
SiteGeneratorによるサイト構築の流れを以下に示す.
  1. site.xmlの記述
  2. site.xmlに基づいたディレクトリと各XML文書の作成
  3. siteGeneratorの実行
  4. 生成されたファイルのアップ
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文書を格納したトップディレクトリへのパス.
baseの各子要素の説明を以下に示す.
title
サイトのタイトル.
description
サイトの概要
webMaster
サイトの管理者情報.webMasterの子要素の説明を以下に示す.
name
サイト管理者の名前やハンドルネーム
mail
サイト管理者のメールアドレス
要素contentsには,サイトのコンテンツ情報を記述する.contents要素にはtop,diary,feature,siteImportの4種類の子ノードがある.これら4種類の要素はコンテンツのタイプを意味する.
top
トップページ
diary
日記コーナー
feature
特集記事などカテゴリとサブカテゴリに階層化された記事のコーナー
siteImport
SiteGeneratorで生成されないコーナー.これはリンクをナビゲーター部に記述するために使用する.
これらの要素には必須属性id,dirがある.idは内部処理やページ内リンク,featureの記事XML文書内との突き合わせに使用する.dirは各コーナーのXML文書を格納してあるディレクトリ名を記述する.このディレクトリは要素baseの属性inputdirに記述したパスの下にあることを想定している(※).また,上記4つの要素の子要素にはnameがある.これは各コーナーの名前を記述する.
※属性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/
に作成される.
matsu(C)
Since 2002
Mail to matsu