top

カレンダー孝

先日非iframe版月送りカレンダーを追加しましたが、カレンダーの種類ってとてもたくさんありますね。ダイナミックでカレンダーを表示させるのにあれこれ試行錯誤してきたおかげで、様々なバリエーションのカレンダーを知ることができました。その辺についてちょっと考察してみようと思います。

■移動のしかたによる分類

前月・次月へのリンクで月別アーカイブへ移動する
ほとんどのレンタルブログ・動的ブログツールで実装されているのがこのタイプだと思います。リンクをクリックするとその月のアーカイブへ移動するのは理にかなっており、実用的で使い勝手もいいと思います。MTでも私はこちらのタイプを好んで使ってきました。月移動カレンダーとしては基本の定番スタイルといえるのではないでしょうか。

頁は動かずカレンダーのみが移動する
MTでよく見かけるタイプ。もともと静的生成ツールだったMTには移動するカレンダーが標準で付いてなかったため、カレンダーアーカイブを別に作成し、iframe内でそれを移動させる方法が考案され、広まっていったためと思われます。そのためMTしか見慣れてないとカレンダーとは頁内で移動するものと思い込みがち(^^;ですが、全体から見れば実はかなり特異な仕様ではないかと思います。
今現在のWingMemoはこちらの方法を取っていますが、これは月別アーカイブを使用していないためiframe内で移動させざるを得ないからであって、月別頁が復活することがあればまた上のタイプに戻すと思います。

■バリエーションによる分類

休日表示カレンダー
小粋空間(javascript版/リアルタイム付き)
カレンダーをカレンダーとしてより効果的に使いたいと思えば自然な欲求かもしれない…。日記などでは便利かもしれませんね。プラグイン版とjavascript版があります。

フラッシュカレンダー
Kinarie&May 通常型 横一列型
手軽に実装できるので人気があるようです。頁内移動しかできませんが、ダイナミックでも問題なく使えるのは魅力。それに何よりかっこいい。問題は今の1カラムのデザインでは横幅が広すぎて収まらないことであります。。。

リアルタイムカレンダー
小粋空間(javascript版/休日表示付き) ダイナミック・パブリッシング版
MTのカレンダーには「今日」を表示するタグがありますが、本当のリアルタイムにするにはダイナミックにする必要があります。javascriptを使うタイプならダイナミックでなくても実装できます。

当月表示カレンダー
うちで採用しているのがこのタイプ。1月の月アーカイブには1月のカレンダー、3月に所属する日別アーカイブには3月の、6月に所属する個別エントリーアーカイブには6月のカレンダーが表示されます。どこをクリックしてどう移動してもこの法則は保たれ、7月のエントリーから8月のエントリーに移動してもカレンダーだけが7月のまま残るなんてことはありません。特に個別のエントリーアーカイブでその月が表示されるのはすごく便利。カレンダーを見ればその記事が書かれた月のエントリー一覧が一目で分かりますしね。どのタイプのカレンダーであっても、これだけは絶対ほしい。自分にとってのこだわりの機能です。

■カレンダーの使い方
MTはカスタマイズ性が豊かなので、その気になればどんなカレンダーでも設置できます。その分、どれにしようか迷いますね。ほとんど全部の機能を盛り込んだ複合型もありますが、ブログの趣旨や運営方針に合わせて必要なものを選び取って使えばいいと思います。javascript無効の環境でも表示させたいのでMTタグのみで表示できるタイプにするとか、自分のための日記なので休日表示を優先したいとか。必ずしも全部の機能を入れなければならないことはないので、本当に必要な機能のみに絞込み、必要のない機能はバッサリ切り捨ててその分軽くする、という選択肢もありだと思います。

ここではカレンダーというよりは「その月の記事一覧表」という趣旨で使っています。月別アーカイブを使ってないので、カレンダーが実質の月別アーカイブになっているんですよね。月別アーカイブが究極のコンパクトさになってエントリーアーカイブと同居してる、て感じで。こんな使い方もありますってことで。

■カレンダーは動的か、静的か?
カレンダーは重い(と言われている)パーツなので、ダイナミックだとアクセスされる度にカレンダーが動的に再構築されることになり、その分MTへの負担が少し増すことになるのではと思われます。しかし個人の日記や備忘録用途でアクセス数がそんなに多くなければ特に問題になることはないと思います。
アクセス数が膨大で頁ビューの多さが気になる場合はカレンダーだけ静的生成にするのもいいと思います。1組のカレンダーアーカイブを全頁で使いまわす方法(iframe版)は静的生成ブログでも再構築の負担を減らすことになりますから、サーバーの負荷具合や頁表示速度具合を見ながら、状況によって使い分けていくのがいいと思います。

ちなみにこのブログでは最初にカスタマイズした名残りでカレンダーは静的生成になっとりますです(^^;。

*おまけ~日別アーカイブについて
標準で用意されているカレンダーは日別アーカイブではなく個別のエントリーアーカイブに飛ぶ仕様になってます。が、それだと1日に複数投稿があった場合は最初の1件しか表示されなくて不便なので、飛ぶ先を日別アーカイブに変えている人も多いと思います。
しかし日別アーカイブを生成するようにすると、当然その分再構築されるファイルも増えますから(事実上エントリーアーカイブが2倍になるに等しい)、静的生成だと再構築への負担も倍増することになります。静的生成の場合はそこをよく考えてから飛ぶ先を決められるといいと思います。再構築が苦しいようなら無理にアーカイブを増やさず個別頁へ飛ぶ仕様のままにしておくのもありだと思います。ダイナミックならどれだけアーカイブが増えても影響ないので、気軽にチェックできるんですが。どうしても使いたい場合、もしダイナミックが可能なら、日別頁だけでもダイナミックにすることをおすすめします。