Movable TypeでMTIncludeもPHPもSSIも使わずテンプレートをモジュール化する方法。
公開日 : 2007-07-11 11:54:21
もっと普及している考え方かと思ったけどそうでもなさそうなので書いておく。 別にMovable Typeじゃなくても使える方法だけど。
PHPもSSIも使わずできるしMTIncludeと比較してもこの方法だと古いページの再構築を一切不要にできる。
関連しそうなエントリー
- Movable Type, 再構築の高速化(<$MTInclude file...$>とBackground Rebuilder Plugin)。
- Movable Typeをめっちゃ高速化する20の方法。
- 古いエントリーは「再構築」しなくてもえーやん!
モジュールをJavaScript化する
要は最近のエントリー等インクルードしたい部分をJavaScriptで吐くわけ。
JavaScript前提じゃん! ってそーですWeb屋の皆さんは「業務」で使わないように。 個人のブログでサーバー管理者から怒られたらやってみれば? くらいのTips(とも呼べないレベルやけど)。
*あと、JSONとかXMLで吐かれるようにしてXMLHttpRequestで...とか言うなよ。JavaScriptで通信させる意味ないし。
まず新規テンプレートを作る。
- テンプレート名 : RecentEntry
- 出力ファイル名 : include/recent_entry.js
- インデックス・テンプレートを再構築するときに、このテンプレートを自動的に再構築する: Check!
テンプレートの内容(最近のエントリー15件を表示する)
document.write('<ul>');
<MTEntries lastn="15">
document.write('<li class="module-list-item"><a href="<$MTEntryPermalink$>"><$MTEntryTitle encode_js="1"$></a></li>');
</MTEntries>
document.write('</ul>');
あとは表示させたい箇所に以下の通り。
<script type="text/javascript" src="/include/recent_entry.js">
</script>
<noscript>
<!--最近のエントリーとか最近のコメントなんかを
まとめたページへのリンクとか置くとより丁寧-->
</noscript>
まぁ、僕はやらないけど役に立つ人もいるかな、ってことで。
*JavaScriptにヒア・ドキュメントがあればいいのに...