#675 MT の過去ログリンク表示を nDiary (ごにょり済み)風に

nDiary の過去ログを MT に移行作業も完了。ついでに前々から気になってた過去ログリンクの表示を、以前の nDiary と同じ表示の仕方にしました。

ってゆうのをここ最近ずーっと延々とごにょごにょしていたのです。やっとで終わった・・・。ゲホゲホ

やり方は Chitatopops さんの所を参考にしました。とりあえず最初に ArchiveDateHeader Plugin, ArchiveYear Plugin, ArchiveLoad Plugin を mt/plugins ディレクトリ内にぶっ込みんぐしておくます。

月別ファイルへのリンク、年別インデックスへのリンク生成方法

ほではまず月別ファイルと年別インデックスリンク(ウチの今現在で言うところの Yearly Indexes, Monthly Archives)生成部分を。

nDiary の頃の過去ログリンク表示

コレが以前使ってた nDiary の俺式過去ログリンク表示。

そして今現在の MT 過去ログリンク表示

ほでこっちがごにょりんぐに成功した MT で nDiary 風過去ログリンク表示。

以下がその部分の MT テンプレ。

  <dt>Yearly Indexes</dt>
  <dd class="yearly">
    <ul>
<MTArchiveList archive_type="Monthly">
<MTArchiveDateHeader>
      <li><a href="<$MTArchiveDate format="/junky/%Y/"$>index.shtml"><$MTArchiveDate format="%Y"$></a></li>
</MTArchiveDateHeader></MTArchiveList>
    </ul>
  </dd>
  <dt>Monthly Archives</dt>
  <dd class="monthly">
    <ul>
<MTArchiveList archive_type="Monthly">
<MTArchiveDateHeader>
      <li><span class="year"><$MTArchiveDate format="%Y"$></span> <MTArchiveYear order="descend"><MTArchiveYearIfEntries><MTArchiveLoad><MTDateHeader><a href="<$MTEntryDate format="/junky/%Y/%m"$>.shtml"><$MTEntryDate format="%m"$></a> </MTDateHeader></MTArchiveLoad></MTArchiveYearIfEntries></MTArchiveYear></li>
</MTArchiveDateHeader></MTArchiveList>
    </ul>
  </dd>

こいつを

  1. MT 管理画面の「Template の編集」 -> 「新しいインデックス・テンプレートを作る」
  2. テンプレートの名前: Utilities
  3. 出力ファイル名: utilities.html
  4. インデックス・テンプレートを再構築するときにこのテンプレートを自動的に再構築する: チェック有
  5. 上記テンプレをコピペして登録。

という感じ。ほんでコレを、各テンプレ(Main Index, Individual Entry Archive 等々)に SSI として

<!--#include file="utilities.html" -->
<!--#include virtual="../utilities.html" -->

などとインクルードして表示させてます。

何故に include かと言うと、どうやら今の借り鯖は再生成時間がある程度長いと Internal Server Error になる事が発覚。これが世に言うリビルド負荷と言うヤツでそか・・・。と今更思いながらも、もうこの際インクる方向で。<MTEntries> ~ </MTEntries> のせいで Date-Based Archive が Internal Server Error るのもインクりんぐで解決じゃ。いやどさくさ紛れに解決させて頂きました。

っちゅー感じなので、別に自分とこは SSI でインクルードせんでもいいべよ。てな方は、管理画面でテンプレ登録なんぞせずとも、直接上記テンプレを各テンプレの必要部分にコピペして頂ければよろしいかと。

年別インデックページの生成方法

お次は上記で作った年別インデックスへのリンクから行ける、年別インデックスページの生成方法を。

nDiary の頃の年別インデックス

nDiary の頃はこんな感じでした。

そして今現在の MT 年別インデックス

ほでこっちも成功した MT で nDiary 風年別インデックスページ。

こちらの生成部分 MT テンプレは以下の通り。

<dl><MTArchiveYear order="descend">
  <MTArchiveYearIfEntries><MTArchiveLoad><MTDateHeader><dt><a href="<$MTEntryDate format="%m"$>.shtml"><$MTEntryDate format="%Y-%m"$></a></dt></MTDateHeader>
  <MTEntries><dd><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a>: <span class="date"><$MTArchiveDate format="%Y-%m-%d (%a)"$></span></dd></MTEntries>
</MTArchiveLoad></MTArchiveYearIfEntries>
</MTArchiveYear></dl>

ちなみにコレ、Chitatopops さんとこのヤツをコピペってごにょってたら運良く上手く行った結果なんで、文法的(?)に変だとお気付きの方はご自分で正しいモノに書き変えてやって下さいまし・・・。おらーいつでも結果オーライ主義なもんでよ。(言い訳

ふぉんでこいつを、

  1. MT 管理画面の「Template の編集」 -> 「新しいアーカイブ・テンプレートを作る」
  2. テンプレートの名前: Yearly Archive
  3. 上記テンプレをコピペして登録。
  4. 次に「BLOG の設定」 -> 「アーカイブの設定」で「新しく追加」
  5. アーカイブの種類: Monthly
  6. テンプレート: Yearly Archive
  7. 「追加」

で、めでたく終了。多分。きっと。限りなく尻すぼみ・・・。ちなみに <dd> にリストマークが付いてんのは、CSS の方で

dd{
  display: list-item;
  list-style: square;
}

などとしてるからです。多分世の中の方々は <dd> <ul> <li> ... とするような気がします。確か nDiary も後者の方だった筈だけど、私は前者の <dd> ズラズラ方式(何)に書き変えてしまったのでこうなってます。

と、こんな感じでございます隊長おらようやく XML+XSLT な環境が欲しいと思った次第であります!(遅

しかしこれらが上手く行ってくれたお陰で、やっとこさデフォルトで装備されてた、あの PHP じゃなきゃやってられねーじゃん。てな感じの Master Archive Index をスッパリ削除出来たじゃあーりませんか! Chitatopops さんに感謝です。

ArchiveYear Plugin と ArchiveLoad Plugin の Lummox JR 氏のサイトが無くなっているようなので、Wayback Machine 内へリンクを貼り直しました。そしてプラグイン自体はとりあえずここに置いておきます。

そしてそして、今現在の月別ファイルへのリンク、年別インデックスへのリンク生成方法のテンプレなどを晒しておきます。

更に今現在の MT 過去ログリンク表示

年別と月別を別ブロックで分けていたのをやめて、一緒のブロックにしてしまいました。

いやサイド棒(何)が無駄に長くなって来たのでとりあえずの対策を・・・。以下その部分のテンプレ。

<dt>Yearly Indexes &amp; Monthly Archives</dt>
<dd class="monthly">
  <ul><MTArchiveList archive_type="Monthly"><MTArchiveDateHeader>
    <li><span class="year"><a href="<$MTArchiveDate format="/junky/%Y/"$>index.shtml" title="<$MTArchiveDate format="%Y"$>年のタイトル一覧インデックス"><$MTArchiveDate format="%Y"$></a></span>: <MTArchiveYear order="descend"><MTArchiveYearIfEntries><MTArchiveLoad><MTDateHeader><a href="<$MTEntryDate format="/junky/%Y/%m"$>.shtml" title="<$MTArchiveDate format="%Y"$>年<$MTArchiveDate format="%m"$>月の記事"><$MTEntryDate format="%m"$></a> </MTDateHeader></MTArchiveLoad></MTArchiveYearIfEntries></MTArchiveYear></li></MTArchiveDateHeader></MTArchiveList>
  </ul>
</dd>

とゆ事で 2005/09 現在の状況でした。

Utilities

Genre

Archives

Thumbnails: 841