トラックバックとコメントを「2ちゃんねる」風にする

ブログツールMovable Type(以下MTと略す)のテンプレートを作成するにあたり、トラックバック欄やコメント欄を「2ちゃんねる」のスレッドのように表示したいと思い、以前から試行錯誤をしていた。基本的に各コメントに通し番号を付ける程度であれば、テンプレートのHTMLでリスト表示のタグを付けるだけでよいのだが、トラックバックはそれなりのものができるが、コメントだけは投稿欄とコメント本文の間に妙な空間ができて、トラックバックのリストと統一感がとれない。その理由はコメント本文を<p>タグで挟む仕様になっているからである。この<p>タグを消せば、HTMLのタグだけでレイアウトを自由に触ることができるのだが、不思議なことに、この<p>タグはテンプレートのどこにも存在しないのである。

では、この<p>はどこで付け加えられるのだろうか。実は「Util.pm」というファイルに記述されているのだ。このファイルは以下の場所にある。

MTをインストールしたフォルダ /lib/MT/Util.pm

この「Util.pm」ファイルをテキストエディタで開くと、MT4.25の場合、484行目を削除するか、行頭に「#」を付けることで、コメント本文に<p>タグを消すことができる。具体的には下記の箇所である。

sub html_text_transform {
my $str = shift;
$str = '' unless defined $str;
my @paras = split /\r?\n\r?\n/, $str;
for my $p (@paras) {
if ($p !~ m@^</?(?:h1|h2|h3|h4|h5|h6|table|ol|dl|ul|menu|dir|p|pre|center|form|fieldset|select|blockquote|address|div|hr)@) {
$p =~ s!\r?\n!<br />\n!g;
# $p = "<p>$p</p>";
}
}
join "\n\n", @paras;
}

上記に赤で記載した「#」を追加して、サーバーに上書き保存し、次にテンプレートを編集し、再構築する。なおMTのバージョンアップごとにこの箇所を修正する必要があるので注意していただきたい。

参考までに当サイトで使用している「トラックバック」と「コメント詳細」のテンプレートも公開する。もし、このテンプレートを使われる方がいましたら、当記事にトラックバックをいただければ幸いである。基本的にはMT標準のテンプレートでHTMLタグだけを触っているため、そのままでも使用できると思われるが、作り込んでいる方は適宜、変更していただきたい。表示のサンプルとして、当ブログで比較的トラックバック、コメントが付いているこの記事をご参考頂きたい。

  • トラックバック
  • コメントの詳細

※「コメント詳細」テンプレートでは<$mt:CommentAuthorLink no_redirect="1"$>というタグを用いていますが、コメント掲載時の投稿者の名前にリンクのリダイレクトページを無効にする設定をしています。リダイレクトページを有効にする場合は「no_redirect="1"」を削除してください。また、コメントの「返信」欄からコメントをした場合でも、そのコメントはツリーにはならず、通常に通し番号が振られて表示されます。