ファイヤープロジェクト
主な変更点
2006-04-17T20:50+09:00   matsu
SiteGenerator Version2での主な変更点
site.dtdを変更した(これ).二つの記述任意のタグを追加した.
  • navigator
  • robots
詳細は後述.
Version1では全頁のtitleタグにsite.xml内に記述した要素title(※)の内容を記述していた.Version2では頁毎に異なる内容をtitleタグに埋める.titleタグに埋めるルールを以下に示す.
TOPページ
site.xmlの/site/contents/top/nameの内容.
diaryのindexページ
site.xmlの/site/contents/diary/nameの内容.
diaryの月毎のページ
YYYY/MM
featureのカテゴリ毎のindexページ
site.xmlの/site/contents/feature/category/nameの内容
featureの記事ページ
記事XMLファイルの/feature/info/titleの内容
※ /site/base/title
Version1では,無条件に生成されるファイルがいくつかあったが,Version2では無条件に生成されるファイルはsite.rssとTOPページだけである.生成ルールに変更のあったページについて以下にしめす.
featureのカテゴリ毎のindexページ
そのカテゴリ内で生成された記事ファイルがあれば生成.
diaryのindexページ
そのdiaryで生成された記事ファイルがあれば生成.
ただし,$outputdir以下の生成対象よりsite.xmlの方が新しければ生成する点はかわらない.
Version2では全生成HTMLファイルに以下のMETAタグを埋める.
<meta name="robots" content="index,follow,archive">
どこにMETAタグを記述するかを指定するために,以下の記述を"siteGenerator_header.template"に記述する必要がある.
<<SiteGenerator::robotsData>>
SiteGeneratorはこれをMETAタグに書き換える.site.xmlにrobotsタグを記述より,index,follow,archiveをそれぞれnoindex,nofollow,noarchiveに変更することができる.
/site/base/robotsで指定
サイト内の全ページに適用.これを指定しない場合は,ここに
<robots noIndex="no" noFollow="no" noArchive="no">
を指定した場合と同じである.この場合
<meta name="robots" content="index,follow,archive">
が埋め込まれる.
/site/contents/*/robotsで指定
該当する要素contentsの子要素の範囲に適用./site/base/robotsで指定されていても,それを上書き設定する.この要素を記述しない場合は/site/base/robotsで指定された内容に従う.
例.
<site>
<base>
...
<robots noIndex="yes" />
</base>
<contents>
...
<diary id="d1" dir="d1">
<name>...</name>
<robots noIndex="yes" noFollow="yes" noArchive="yes"/>
<feature id="f1" diar="f1">
<name>...</name>
<robots noFollow="yes"/>
...
<feature id="f2" diar="f2">
<name>...</name>
<robots noIndex="no"/>
...
と設定した場合,d1に属する日記ページには全て
<meta name="robots" content="noindex,nofollow,noarchive">
が埋め込まれる.そしてf1に属する記事ページ,カテゴリ毎のインデクスページには全て
<meta name="robots" content="noindex,nofollow,archive">
が埋め込まれる.そしてf2に属する記事ページ,カテゴリ毎のインデクスページには全て
<meta name="robots" content="index,follow,archive">
が埋め込まれる.上記以外のページには全て
<meta name="robots" content="noindex,follow,archive">
が埋め込まれる.
Version1ではナビゲータ部はmain部(ページ毎に異なる内容が生成される部分)の後に出力された.Version2ではsite.xmlの/site/base/navigatorにより,main部の前か後かを設定できる.この要素は記述任意であり,記述しない場合は
<navigator position="beforeMain" />
を記述した場合と同じ振るまいをする.
featureのカテゴリ毎のインデクスページに,サブカテゴリへのページ内インデクスを作成するようにした.
url記述で一部"....//..."となっている部分があった.動作に問題はないが修正.
Version 2.01で属性registerAtNavigatorをtop,diary,siteImport,featureタグに追加.
0
該当コーナーをナビゲータ部に表示しない.
1
該当コーナーをナビゲータ部に表示する.今までと同じ動作.デフォルト.
<diary id="secret" dir="secret" registerAtNavigator="0">
<name>秘密</name>
<robots noIndex="yes" noFollow="yes" noArchive="yes"/>
</diary>
こうすると属性registerAtNavigatorの値が0なのでナビゲータ部に「秘密」頁へのリンクが表示されない(頁は従来どおり生成される).
Version 2.02でsiteGenerator_diaryindex.templateのキーワード「SiteGenerator::Latest」に引数を追加した.
<<SiteGenerator::Latest(A)(B)(C)(D)(E)(F)(G)>>
追加したパラメータAにより,最新の日記を何日分,日記インデクスページに記述するかを指定できる.念のために,Version 2.02での全パラメータを記述しておく.
A
最新の日記として何日分の記事を日記インデクスページに記述するかを整数で指定する.
B
年の値の前に記述する文字(例えば「西暦」)
C
年の値の後に記述する文字(例えば「年」)
D
月の値の前に記述する文字(例えば...何だろ)
E
月の値の後に記述する文字(例えば「月」)
F
日の値の前に記述する文字(例えば...何だろ)
G
日の値の後に記述する文字(例えば「日」)
Aは必須である.BCDEFGにはなんらかの文字を入力し,指定したくない場合はスペースでもいれておく.
siteImportタグにurl属性を追加した.これで任意のURLへのリンクをナビゲータ部に作成できる.新DTDはこれ.
要素diaryに属性rssと属性scopeを追加.
rss
設定任意. onなら該当日記用RSSを生成する. 日記indexページと同じディレクトリにdiary.rssを生成する.
scope
必須. 日記XMLの各要素captionにも属性scopeを設定し,該当日記コーナーで,どのスコープ以上の要素captionを生成するかを設定する. どちらも値は
private,protected,public
のいずれか. 例えば要素diaryの属性scopeの値がprotectedなら,要素captionの属性がpublicかprotectedのもののみが該当日記コーナーにて生成される. このscope設定は日記RSSの内容にも反映される(生成されるcaptionについてのみ,RSSが生成される). 日記XMLの要素captionの属性scopeは設定任意. 省略時はprotectedが設定されたものとして処理される.
また,site.xmlの要素baseの子要素として空要素rssを追加. 属性urlにてrssファイルのURLを設定できる. ただし,SiteGeneratorが生成するRSSは,ファイル名はsite.rssのままだし,出力ディレクトリも変更はない. ここで設定した値は, siteGeneartor_header.templateにて
<<SiteGenerator::rssUrl>>
を記述するとRSSを示すMETAタグに展開される. ただし,日記ページでは挙動がかわる.
  • 日記コーナーにてRSS生成をonにしていると,該当日記コーナーのページでは,該当日記のRSSのURLにてMETAタグが出力される.
  • 日記コーナーにてRSS生成をoffにしていると,該当日記コーナーのページでは,RSSのMETAタグが出力されない.
新DTDはsite.dtddiary.dtd.
matsu(C)
Since 2002
Mail to matsu