Movable Type のサイドバーを JavaScript で書き出す

以前から「個別エントリーアーカイブ」に「カテゴリー」を表示させいと思っていたのですが、再構築時間が長くなるので敬遠していました。

ですが、サイドバーを JavaScript で書き出す方法を解説しているページを発見し、早速やってみました。

参考にさせていただいたページは、

です。ありがとうございます。

設定方法

まず、新しいインデックス・テンプレートを作ります。

テンプレート名

カテゴリー

出力ファイル名

categories.js

テンプレートの内容

function Categories(){
var h = "<MTIfArchiveTypeEnabled archive_type='Category'>";
h += "<div class='module-categories module'>";
h += "<h2 class='module-header'>カテゴリー</h2>";
h += "<div class='module-content'>";
h += "<MTTopLevelCategories>";
h += "<MTSubCatIsFirst><ul class='module-list'></MTSubCatIsFirst>";
h += "<MTIfNonZero tag='MTCategoryCount'>";
h += "<li class='module-list-item'><a href='<$MTCategoryArchiveLink$>'><$MTCategoryDescription$></a> (<$MTCategoryCount$>)";
h += "<MTElse>";
h += "<li class='module-list-item'><$MTCategoryDescription$>";
h += "</MTElse>";
h += "</MTIfNonZero>";
h += "<MTSubCatsRecurse>";
h += "</li>";
h += "<MTSubCatIsLast></ul></MTSubCatIsLast>";
h += "</MTTopLevelCategories>";
h += "</div>";
h += "</div>";
h += "</MTIfArchiveTypeEnabled>";
return h;
}
document.write(Categories());

※あらかじめテキストエディタでソース中のダブルコーテーションをシングルコーテーションに置換しておくと簡単です。

再構築オプション

チェックを入れておく

次に、カテゴリーを表示させたいページの好きな所に、以下のソースを追加。

<script language="javascript" type="text/javascript" src="<$MTBlogURL$>categories.js"></script>

該当するテンプレートを再構築する

以上です。

試しに再構築時間してみましたが「カテゴリー」を追加する前と変化なし(体感値)。

調子に乗って「最近のエントリー」なんかも外部 JavaScript ファイルにしました。

この改造によって、心配なのは、

  • 属性値をシングルコーテーションで書いているが問題ないのか?
  • 検索エンジンはリンクとして認識してくれるのか?

と言った所です。

検索エンジン対策に関しては、個別エントリーアーカイブに元々存在しなかった「カテゴリー」リンクを追加しただけなので、問題ないのではないかと思います。

とりあえず「カテゴリ追加の度に再構築の刑」が無くなっただけでも良しとする。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です