div内でも改行できるように

以前、カスタマイズで「エントリー画面でdivを挿入する」というのを書いたのですが、
div内の文章の改行が無くなってしまうんです。

理由がわからず、結局スタイルシート

white-space: pre;

を入れていたんですが、
ググっていたら、やはり同じように?困っている方がいっぱいいました。

それでいろいろ試してみたんですけど、結局、小粋空間さんの方法を採用しました。


参考URL:
【小粋空間: エントリーにpタグとbrタグが入る仕組み(その2:blockquoteにbrタグを挿入)】

エントリー後に改行である、<br />と<p></p>が入るしくみについては、
小粋空間さんの解説にお任せします。

参考URL:
小粋空間: エントリーにpタグとbrタグが入る仕組み(その1:コード解析)
小粋空間: エントリーにpタグとbrタグが入る仕組み(その2:blockquoteにbrタグを挿入)
小粋空間: エントリーにpタグとbrタグが入る仕組み(その3:textareaにbrタグを挿入しない)


で、実際にやったことはというと、

lib/MT/Util.pmを編集します。

html_text_transformで検索すると、以下のような部分があります。

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>"; } }


上記のタグが列挙してある部分の「div」を削除します


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|hr)@) {
$p =~ s!\r?\n!<br />\n!g;
$p = "<p>$p</p>";
}
}


こうすることにより、エントリーの本文中にdivを使っても、きちんと改行してくれます

テキストフォーマットを「改行を変換する」に選択している状態というのが前提ですよ。

人とお金が集まるブログ作りの秘伝書―決定版
石崎 秀穂
シーアンドアール研究所 (2005/07)
売り上げランキング: 1,291
おすすめ度の平均: 4.33
4 珍しいノウハウ本
5 具体的なノウハウが満載
5 ここまで載せるか、マニアックな裏技まで網羅


このブログがすごい!2005
別冊宝島編集部
宝島社 (2004/12/21)
売り上げランキング: 18,514
おすすめ度の平均: 4.6
5 このブログ本!がすごい!!!
4 初心者の方へ
5 意外とレベル高いよ