この記事は半年以上前に書いたものです。情報の信憑性を疑ってください。また、コメントの受付は終了しました。

2007/08/22 11:08

html_text_transformにはまる。。

Movable Typeのmt/lib/MT/Util.pm内のhtml_text_transformを自分用にいろいろやっていくうちにとりとめも無くなってきました。html_text_transformは、エントリーの内容(MTEntryBody)を改行設定の「改行を変換する」に設定した際に動作するアレです。エントリーの内容を自動的にいろいろマークアップしてくれる感じ。

デフォルトの動作の流れは、エントリーの内容を空行があるところ(改行改行と続いている箇所(\n\n))でブチブチ切って配列に代入していきます。その配列を1つ1つマークアップしてくれます。エントリーの内容にはタグを直接入力できるので、行頭に以下のタグがない場合のみ動作します。

タグ:h1 h2 h3 h4 h5 h6 table ol dl ul menu dir p pre center form fieldset select blockquote address div hr

あくまでも行頭です。これらのタグが行頭ない場合、配列の1つずつ、改行を<br />に変換し、<p></p>で囲んでくれます。<br />なので、XHTMLです。Movable TypeをHTML4で書くのは面倒くさそう。。こんなXHTMLハードコーディングがいたるところにありそうです。

話はそれたけど、これだけしかしてくれません。いろいろと本当にやっかいです。まずなにより「エントリーの内容を空行があるところでブチブチ切って配列に代入していきます」がやっかいです。つまり、下記の空行入りがやっかいすぎるのです。

<blockquote>
私は、その男の写真を三葉、見たことがある。

一葉は、その男の、幼年時代、とでも言うべきであろうか、
</blockquote>

あとは、インデントがない。HTMLを綺麗にしたい僕にはイラっとします。ええ、自己満足です。

この辺をどうにかしたいんですよ。まだまだ戦っています。昨日、数時間戦いました。出来上がらないと、このブログが公開に至らない悲しさ。。。

関連するエントリー
MovableType
前後のエントリー
Old: links for 2007-08-21
New: html_text_transformの確認用エントリ