例えば 「Movable Type 5 ドキュメント|movabletype.jp」のような目次的なページで、
個々のページはウェブページで生成し、適当な章立てをしつつ見せたい、なんていう時にページ追加・削除時のメンテを少しだけ楽にする書き方を工夫してみた。
前提として、
* 個々のページはウェブページで作成し、章をプライベートタグで入れておく 。
* 目次ページ自身はインデックスアーカイブか、ウェブページにmteval=”1″を指定して生成する。
<mt:SetHashVar name="section"> <$mt:SetVar name="01" value="@インストールと初期設定"$> <$mt:SetVar name="02" value="@アップグレード"$> <$mt:SetVar name="03" value="@フォームの作成(基本操作)"$> <$mt:SetVar name="04" value="@管理画面の操作"$> <$mt:SetVar name="05" value="@フォームのデザインカスタマイズ"$> <$mt:SetVar name="06" value="@開発者向けガイド"$> <$mt:SetVar name="07" value="@セキュリティ、死活監視"$> <$mt:SetVar name="08" value="@各種リファレンス"$> </mt:SetHashVar> <mt:Loop name="section" sort_by="key"> <h2><$mt:Var name="__value__" replace="@","" $></h2> <ul> <mt:Pages folder="A-Form/ドキュメント" tags="$__value__" sort_by="title" sort_order="ascend"> <li><a href="<$mt:PagePermalink$>"><$mt:PageTitle remove_html="1"$></a></li> </mt:Pages> </ul> </mt:Loop>
この方法のポイントは、プライベートタグ設定など適度に手動制御部分を残しつつ、判定文はいっさい書き足さずにメンテできるところでして、
* 章の順番を自由に制御できる。
* タグベースなのであるページを複数の章に所属させたい時にも対応できる。
* 章を増やす時はmt:SetHashVar部分に1行を書き足すだけでよくて、面倒っちぃ判定文を書き足す必要がない。
せいぜい数十ページ程度までの小規模な目次ページなら小回りがきいてオススメな感じ ^^
逆にページ数が膨大な場合はプライベートタグの設定がかえって面倒で、あまりメリットはでない。
あと、印象として再構築がやや長めかもしれない。
<mt:Loop name=”section” sort_by=”key”>
<h2><$mt:Var name=”__value__” replace=”@”,”" $></h2>
<ul>
<mt:Pages folder=”A-Form/ドキュメント” tags=”$__value__” sort_by=”title” sort_order=”ascend”>
<li><a href=”<$mt:PagePermalink$>”><$mt:PageTitle remove_html=”1″$></a></li>
</mt:Pages>
</ul>
</mt:Loop>