インデックステンプレートで索引ページを作るという、一瞬何が言いたいのか分からないかも知れないがそういう事。
「索引」で検索すると「インデックステンプレート」も検索にかかってググラビリティが低かった。
index.htmlはトップページであってインデックス(索引)じゃないよね、というのと似たような話かも知れない。
環境
Movable Type 7 r4208
構文
<h2>記号</h2>
<ul>
<mt:Var name="before_alphabet" value="1">
<mt:Entries sort_by="title" sort_order="ascend">
<mt:Var name="entry_title_first_letter_before" value="$entry_title_first_letter">
<mt:SetVarBlock name="entry_title_first_letter"><$mt:EntryTitle trim_to="1"$></mt:SetVarBlock>
<mt:If name="entry_title_first_letter" ge="A">
<mt:Var name="before_alphabet" value="0">
</mt:If>
<mt:If name="before_alphabet" eq="0">
<mt:If name="entry_title_first_letter" ne="$entry_title_first_letter_before">
</ul>
<h2><$mt:Var name="entry_title_first_letter"$></h2>
<ul>
</mt:If>
</mt:If>
<li><a href="<$mt:EntryPermaLink$>"><$mt:EntryTitle$></a></li>
</mt:Entries>
</ul>
出力
見やすいように整形している。
<h2>記号</h2>
<ul>
<li><a href="">:-2m</a></li>
</ul>
<h2>A</h2>
<ul>
<li><a href="">AA</a></li>
<li><a href="">AKB</a></li>
</ul>
<h2>N</h2>
<ul>
<li><a href="">NMB</a></li>
</ul>
<h2>b</h2>
<ul>
<li><a href="">bbb</a></li>
<li><a href="">bbc</a></li>
</ul>
<h2>c</h2>
<ul>
<li><a href="">ccc</a></li>
</ul>
<h2>ほ</h2>
<ul>
<li><a href="">ほげ</a></li>
</ul>
<h2>a</h2>
<ul>
<li><a href="">aaa</a></li>
</ul>
見ての通り、記号→大文字英語→小文字英語→日本語→全角英数字といった順になる(文字コードの順番)。
そのため、手間はかかるが索引用のカスタムフィールドを作って定形フォーマットを守って入力し、上記テンプレートタグの対象にするのが好ましい(特に漢字が多い場合)。
その場合は、カスタムフィールドを作成してsort_by="title"
の部分をsort_by="field:customfieldbasename"
(カスタムフィールドの「ベースネーム」に指定した名前)に書き換える。
また、<$mt:EntryTitle trim_to="1"$>
のEntryTitle
部分をカスタムフィールドの「テンプレートタグ」に指定した名前に書き換える。