実行時の注意
SiteGeneratorを実行する際のいくつかの注意点をまとめた.
SiteGeneratorは
$ SiteGenerator.pl site.xmlとして実行する.このとき,site.xmlの要素baseの属性inputdirの値が示すディレクトリから入力XML文書を読みとり,同属性outputdirの値が示すディレクトリをトップディレクトリとして生成ファイルを出力する.生成されるファイルには,毎回必ず生成されるものと,タイムスタンプの比較の結果生成されるものとがある.
- 毎回かならず生成されるファイル
- RSSファイル
- TOPページのファイル
- featureのカテゴリ毎のインデクスページのファイル
- diaryの最新の書き込みとインデクスのページのファイル
- タイムスタンプを比較した結果生成されるファイル
- featureの記事ごとのページのファイル
- featureの記事XML文書が格納されているディレクトリにあるファイルで,XML文書ファイル以外のコピー(CVSディレクトリ,~ファイルを除く)
- diaryの月々の日記ページのファイル
- site.xmlが出力ファイルより新しいか.
- 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指定が必要である.

