Naga Blog

Movable Type

<blockquote>タグ使用時に改行を生成させる方法。

エントリーを書くとき、通常の文章は、テキストフォーマットの設定が、「改行を変換する」になっていたら、自動的に改行タグを挿入してくれるのですが、引用文を入れるときに<blockquote>というタグで内封された文章には、改行タグが自動で挿入されないのです。「Movable Type」の仕様なんだろうと思い、引用する文章自体もそんなに長くなかったので、チマチマと<br />と入れていました。

しかし、<pre>タグを使って、スクリプトを表記できるようにしたとき、こっちは<br />と表記しなくても、ちゃんと改行してくれるのです。さすがに、これが分かってからは、<blockquote>タグで内封された文章でも<br />とは打たないでイイ方法はないかなと、最近、漠然と思いはじめてしまいました。

先日、別のエントリーに「我楽」さんからトラックバックを受けたとき、チェックついでにサイト内を散策していたら、あるではありませんか、目的のモノが!!

早速、「我楽」さんの「Blockquoteタグにデフォルトで改行が入るようにする。」と、参考にされたという「無言さんのつぶやき」さんの「Blockquoteタグに改行を入れる方法」というエントリーを参考にして、設定にかかりました。意外と簡単だったので、ちょっと拍子抜けしちゃったんですけどね。

ということで、いつもの手順です。

1.「Movable Type」のシステムが入っているディレクトリを開いて、libというディレクトリを見つけます。その中にmtというディレクトリがありますから、そこの中に入っている「util.pm」というファイルを探しだし、ダウンロードします。

2.「util.pm」をテキストエディターに開いて、下記のリストを探すわけですが、かなりの行数なのでどれがとれだか分かりません。行数で指示されても、環境が違うと見え方も変わるので、直前の$p = "<p>$p</p>";という文章をエディターの検索機能を使って探し出します。前後のコマンドが同一のものか確認して、所定の位置に、新しいスクリプトを書き入れます。

sub html_text_transform {
my $str = shift;
$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|blockquote|address|div|hr)@) {
$p =~ s!¥r?¥n!<br />¥n!g;
$p = "<p>$p</p>";
}
elsif ($p =~ m@^</?(?:blockquote|div|p)@){
$p =~ s!¥r?¥n!<br />¥n!g;
}
}
join "¥n¥n", @paras;
}

3.間違いがないか確認して終わったら、ダウンロードした同じ位置に「util.pm」をアップロードしたら作業終了です。

4.必ず、既存のエントリーから<blockquote>の内封した文章から<br />を外して再保存。問題なく<br />が生成されているか確認しておいて下さい。

--追記--
上記の改造で、<blockquote>の内封した文章では、ちゃんと<br />が入るようなったのですが、<pre>タグの方で、<br />が入ると余計に1行空いてしまう現象が発生しまして、解決の方法が分からなかったので元に戻しました。ちょっと残念。楽できると思ったのになぁ。

コメント [4]

こんばんわー。
TBありがとうございますー。^^

コメントついでに・・・引用タグのエリアがエントリーエリアより広がってしまってるので、右サイドバーが下におっこっちゃってますよー。
以下スクリーンコピー

http://blog.garaku.cc/archives/images/000001.jpg

>Border. さん
見事ににバグに突っ込んでますね〜。CSSでボックスにスクロールを付けるとwidthの設定が無視されているようです。調べて、対策します。

>Border. さん
やっぱり、バグにひっかかってました。overflow:scroll;を指定すると、WIN版IEではwidth:auto;という指定は無視して文章の最大幅で表示するみたいです。きちんと、width:000px;と指定すると回避できるようです。

おおっ。直ってますなー。^^
いやー、それにしてもauto設定は駄目ですねぇ。私、一部iframeを使用してるんですけど、autoだときちんと意図したとおりに表示してくれないんですよね。
ie ver.7がアナウンスされてますが、この辺の修正は・・・やっぱり期待できないのかな?(苦笑)

About this entry

このページは、naganagaが2005年2月19日 17:18に書いたブログ記事です。

ひとつ前のブログ記事は「Internet Explorer 7、ついに憂鬱の種が現る事が決定。」です。

次のブログ記事は「やっぱり孫ちゃんちも、音楽配信サービスに参入。」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。