月別アーカイブの表示をコンパクトに

blogツールであるMovable Typeは登録したエントリーを「アーカイブ」として書庫化してくれるんですが、長い間サイトを動かしてると、結構書庫が溜って来ます。

特に月別アーカイブは

  • 2004年07月
  • 2004年06月
  • 2004年05月

    ↑こんな感じで(内容など殆ど無いのに:^^;)びろーんと長くなっちゃって、すっげぇ邪魔。

    仕方ないので暫く↑こんな感じでプルダウンフォームにしてたんすけど、この方式ではJavaScriptを使わざるをえない→JavxScriptをoffにした端末では使えない&ワタシゃJavaScript嫌い(^^;;なんで、あまり嬉しくないという。

    うむむむ〜と考えます。

    「要するに一覧表がタテに並ぶのが敗因なんだから、ずらーっと月表示を横に並べるようにしたらどうかなぁ?」

    ということで、やってみます。

    <MTArchiveList archive_type="Monthly">
    <b><$MTArchiveDate format="%Y"$></b>
    <a href="<$MTArchiveLink$>"><$MTArchiveDate format="%m"$></a>
    </MTArchiveList>
    <br />
    <a href="archives.html">全エントリ一覧</a>
    </div>

    結果>

    040708a.gif

    ちょっと考えてたのとは違うようです(^_^;) 

    <$MTArchiveDate format="%Y"$>(年表示)と<$MTArchiveDate format="%m"$>(月表示)が両方表示されたままループしてるのがイカンのですが、MTタグとしてはどちらも等価で、どっちかに差を付けるみたいなことができない模様。

    MTはユーザが多いので、こーゆーことって既に解決されてるのでは??…と調べたところ、やはりありました。

    Archive Date Header Plugin

    If you use monthly archives, the contents of this container will only be printed when a new year starts.

    新しい年が始まったときだけ表示しますということで、まさにお望みのプラグインみたいです。早速(大感謝を捧げてから)プラグインを頂いて来て解凍し、ArchiveDateHeader.plを/mt/pluginsに配置します。

    <div class="side">
    <MTArchiveList archive_type="Monthly">
    <MTArchiveDateHeader>
    <br /><b><$MTArchiveDate format="%Y"$></b>
    </MTArchiveDateHeader>
    <a href="<$MTArchiveLink$>" title="<$MTArchiveCount$>"><$MTArchiveDate format="%m"$></a>
    </MTArchiveList>
    <br />
    <a href="archives.html">全エントリ一覧</a>
    </div>

    年が変わったときに改行するいい方法を思いつけなかったもので、「年の前にbrタグを打つ」という極めて強引な方法で解決(配布元のサンプルでは年表示をpタグで挟んでたが、このやり方は今回の「狭い所に押し込む」という基本コンセプトに合致しなかったので断念)してます(^_^;) そのため月別アーカイブの表示は(年の表示前に改行され)他の同種表示に比べて1行下がってますが、気にしないでください(^^;;

    ついでに上記内容をTemplate Modulesとして登録し、各テンプレートには

    <MTInclude module="archive">

    と書くようにしました。この方がメンテナンス楽なんで。


    その後

    bird.dip.jp: Monthly Archive

    にてほぼ同じ表示にする手順を発見。こちらではCompare pluginを使われてました。結果は殆ど同じ。