Sync A World You Want To Explore

関 信浩が2002年から書き続けるブログ。ソーシャルメディア黎明期の日本や米国の話題を、元・記者という視点と、スタートアップ企業の経営者というインサイダーの立場を駆使して、さまざまな切り口で執筆しています

blogのエントリー画面に「最新コメント」などを付けていても、古いエントリーでは全然最新じゃない、なんてことが起きます。

これは、エントリーの画面(正確に言うとPermalinkで示された、Individual archivesテンプレートで生成されたページ)は、「blog全体をrebuildする」、「individual archivesをrebuildする」、「そのエントリーに書き込みがあった場合」のどれかの最後の時点から、ページが更新されないからです。

Movable Typeでは、試みとして各ページを動的に生成することを考慮したこともあったようですが、重くて実用にならなかったようです。

しかしWWWサーバーでSSI(サーバーサイド・インクルード)を設定できれば、サイドバーなどを最新の状態に保てます(それでもサーバーに負荷はかかりますが)。

サーバーでの設定は次のとおり

・WWWサーバーでSSIを使える設定にする(これは各自)
・MTのmt.cfgで「HTMLPerms 0777」のコメントを外す

次に、最新の状態にしたい部分ごとに、新しいIndex Templateを作ります。
例えば最新のコメントを「recent-comments.cgi」というファイル名で、Index Templateとして作成します。

Recent-comments.cgi


#!/usr/bin/perl -w
print <

<div class="sidetitle">
Recent Comments
</div>

<div class="side">
<MTEntries recently_commented_on="5">
- [<a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a>]<br />
<MTComments lastn="2">
+ <$MTCommentAuthorLink show_email="0"$> at <a href="<$MTEntryLink$>#<$MTEntryID pad="1"$>"><$MTEntryDate format="%H:%M %b/%d"$></a><br />
</MTComments>
</MTEntries>

</div>

EOF

exit;

最後に表示させたい場所(例えばIndividual Entry Archive)に


<!--#exec cmd="<$MTBlogSitePath$>recent-comments.cgi" -->

などとします。