LoginSignup
0
0

More than 5 years have passed since last update.

【MovableType】テンプレートタグで索引ページを作る

Posted at

インデックステンプレートで索引ページを作るという、一瞬何が言いたいのか分からないかも知れないがそういう事。
「索引」で検索すると「インデックステンプレート」も検索にかかってググラビリティが低かった。
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></h2>
<ul>
   <li><a href="">aaa</a></li>
</ul>

見ての通り、記号→大文字英語→小文字英語→日本語→全角英数字といった順になる(文字コードの順番)。
そのため、手間はかかるが索引用のカスタムフィールドを作って定形フォーマットを守って入力し、上記テンプレートタグの対象にするのが好ましい(特に漢字が多い場合)。
その場合は、カスタムフィールドを作成してsort_by="title"の部分をsort_by="field:customfieldbasename"(カスタムフィールドの「ベースネーム」に指定した名前)に書き換える。
また、<$mt:EntryTitle trim_to="1"$>EntryTitle部分をカスタムフィールドの「テンプレートタグ」に指定した名前に書き換える。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0