「mt-link-number」は2ちゃんねる風のコメント参照を実現できる Movable Type プラグインです。
「>>番号」または「>>番号-番号」の文字列を、番号に依存したリンクに変換します。
変更履歴
2005/02/02: Movable Type 3.x 系に正式対応
2004/03/16: "Convert Line Breaks" と併用時に、段落が ">番号" で始まる場合の不具合を修正
<$MTCommentBody link_number="1"$> <$MTCommentBody link_number="#%06d"$> <$MTEntryBody link_number="http://xxx/%06d.html"$>
ダウンロードしたファイルを解凍すると、プラグインの実体(mt-link-number.pl)が取り出せるので、それを mt/plugins フォルダに移動します。
上記使用例のように、この機能を使いたいテンプレートタグ内で、グローバル属性として記述します。
値に"1"を指定すると、「>>番号」が「<a href="#番号">>>番号</a>」に変換されます。
値に任意のspintfフォーマット文字列を指定すると、hrefの値を自由に変えることができます。
「>>番号-番号」の場合は、最初の番号がリンク先の対象となります。
この機能を利用することで、2ちゃんねる風のコメント参照を実現することができます。
以下のように、各コメントの先頭に番号とアンカーを置き、<$MTCommentBody$> に link_number 属性を指定してあげます。
これで「>>番号」をクリックしたときに、該当するコメント番号に移動できるようになります。
<MTComments> ... <a name="<$MTCommentOrderNumber$>"></a> <$MTCommentOrderNumber$> または <a name="<$MTCommentID$>"></a> <$MTCommentID$> ... <$MTCommentBody link_number="1"$> ... </MTComments>
前者(MTCommentOrderNumber)の場合は、<MTComments>内での通し番号になるため見やすいですが、コメントに unique な番号ではないので注意が必要です。
(コメントを削除した場合などに番号がずれてしまいます)
後者(MTCommentID)の場合は、完全にコメントと一対一になりますが、Weblog 全体を通した絶対番号になるため連番にはなりません。
2ちゃんねるの雰囲気を出したい場合は、<$MTCommentOrderNumber$> をオススメします。
JavaScript を併用することで、コメントへのレスをより容易にすることができます。
本サイトの使用例を書きますので、各自好きなようにいじってみて下さい。
まず、以下の JavaScript の関数を追加します。
これが textarea に「>>番号」を挿入し、textarea にフォーカスを移す JavaScript です。
<script type="text/javascript" language="javascript">
<!--
...
function insertCommentRef(n) {
document.comments_form.text.value += ">>" + n + "\n";
document.comments_form.text.focus();
}
...
//-->
次に、コメントフォームの先頭辺りに以下のようにアンカーを置きます。
上記フォーカスの挙動がブラウザによって違うことに対する保険と、JavaScript が動かない環境でも移動だけはできるようにするためです。
<div class="comments-head">Post a comment</div> <a name="comment-form"></a> ...
最後に、上記アンカーへ飛びつつ JavaScript を実行するリンクを各コメント近くに書きます。
JavaScript への引数に、各コメントの番号(本サイトでは <$MTCommentOrderNumber$> を使用)を渡してあげています。
<a href="#comment-form"
onClick="insertCommentRef('<$MTCommentOrderNumber$>')">[RES]</a>
これでコメントフォームに移動し自動的に「>>番号」を挿入するレス機能の完成です。
本サイトでは番号と一緒にコメントしてくれた方の名前も JavaScript に渡すようにしています。
mt-replace-empty を併用することで、「さん」付けの匿名対応もしています。
興味のある方はチャレンジしてみて下さい。
「トリップ」や「dat 生成」など、より2ちゃんねるの機能に近づけたい方は、「きっちん」の「きっちん: コメントを 2ch 風に」をご覧下さい。
「きっちん」の管理者よっふぃ〜さんのご協力で、当サイトにもアーカイブを置かせていただいています。 → mt-2ch.tgz
※ Movable Type 3.0 以降だとうまく動かない可能性があります