ファイヤープロジェクト
実行時の注意
2003-08-18T07:00+09:00   matsu
SiteGeneratorを実行する際のいくつかの注意点をまとめた.
SiteGeneratorは
$ SiteGenerator.pl site.xml
として実行する.このとき,site.xmlの要素baseの属性inputdirの値が示すディレクトリから入力XML文書を読みとり,同属性outputdirの値が示すディレクトリをトップディレクトリとして生成ファイルを出力する.生成されるファイルには,毎回必ず生成されるものと,タイムスタンプの比較の結果生成されるものとがある.
  • 毎回かならず生成されるファイル
    • RSSファイル
    • TOPページのファイル
    • featureのカテゴリ毎のインデクスページのファイル
    • diaryの最新の書き込みとインデクスのページのファイル
  • タイムスタンプを比較した結果生成されるファイル
    • featureの記事ごとのページのファイル
    • featureの記事XML文書が格納されているディレクトリにあるファイルで,XML文書ファイル以外のコピー(CVSディレクトリ,~ファイルを除く)
    • diaryの月々の日記ページのファイル
タイムスタンプの比較はいずれの出力ファイルでも以下順番で行なわれ,いずれかが真であれば生成される.
  1. site.xmlが出力ファイルより新しいか.
  2. inputdirの入力ファイルが対応するoutputdirの出力ファイルより新しいか.
前節で説明した理由から,テンプレートファイルを修正したときは,すべてのファイルを再生成したい場合が多いと思う.このときは,
$ touch site.xml
を実行してからSiteGeneratorを実行すると,全てのファイルを再生成する.
featureの記事XML文書の要素categoryの属性noは,カテゴリ毎のインデクスページにおける,サブカテゴリ毎の表示順を意味する.すなわちnoの値はサブカテゴリ毎のページ番号である.すでにnoが1から100までの記事XML文書があって,後からno=1とno=2の間にページを挿入したいときは,no挿入するXML文書のnoの値を1と2の間の値,例えば1.5などとすることで,インデクスページでの表示順を制御することができる.つまりnoの値には小数を使用できる(※).
※より厳密にはnoの値にはPerlで正しく表現できる正負の整数と小数を指定できるが,0や負数は運用上混乱を来すと考えられる.
SiteGeneratorは妥当でないXML文書(DTD違反を犯しているXML文書)に対して,親切なエラーメッセージを出力しない.ページが正しく生成できない場合は,
$ xmllint --valid XML文書 > /dev/null
などとして確認する.上を実行して何も出力されなければ妥当性を満たしている.当然XML文書にはDTD指定が必要である.
matsu(C)
Since 2002
Mail to matsu