Movable Type4のWYSIWYGエディタが生成したHTMLをクリーンアップするプラグイン。

| コメント(2) | トラックバック(0)

背景・経緯

MT4のWYSIWYG編集では、例えば "<br>" が "<br />" にならないとか IMG要素が閉じられない (つまり空要素が />で終わらない) 問題があります(Beta2の時にフィードバック済み)。

またWindows版 Internet Explorer, Opera* だと要素タイプ名/属性名が大文字になってしまいます。

*Macintosh版 Safariでも要素タイプ名/属性名は大文字になりますが、そもそもSafariではWYSIWYGがうまく動作しません。

テンプレートはXHTMLで書かれていますのでこれらの部分はXHTMLとして正しくないことになります。

また、B, I, U, STRIKE, FONT 等の要素が使われることからWYSIWYGを敬遠する人も多いかと思います。

簡単に修正できるのか? と思っていましたがBeta7で修正されていないところを見るとコード数行で済む問題でもないようです。

H.Fujimotoさんのエントリーによると、

動作からすると、リッチテキストエディター部分のinnerHTMLプロパティをそのまま出力しているようです。

とあります。となるとブラウザがHTMLを生成しているわけで、修正するには根本的に実装方法を変える必要があるという、ちょっとやっかいな仕様ということになります。

MT4のWYSIWYGエディタについて言及している他サイトのエントリー

ということもあって、MT4のWYSIWYGエディタが生成したHTMLを出来る限りクリーンアップするプラグインを作成しました。

利用方法

プラグインフォルダに tag2xhtml.pl をアップロードします。

再構築の際 (ファイルがディスクに書き出される直前) にファイル全体に対して処理を行います(「確認」段階では処理は行われません。またデータベースに格納されるデータは変換されません)。

ダイナミックパブリッシングには未対応です。

処理内容

  • 要素タイプ名と属性名を小文字に変換します。
  • 空要素タグを /> で閉じます。
  • B, I, U, STRIKE, FONT 等の物理要素をそれぞれ STRONG, EM, INS, DEL, SPAN要素に置換します (簡易的な対応ではありますが、主な視覚系UAのデフォルトスタイルが同等な論理要素に置換します) 。

対応バージョン

Movable Type3.x, Movable Type4.0

ライセンス

パブリック・ドメイン

ダウンロード

Newプラグイン

トラックバック(0)

トラックバックURL: http://junnama.alfasado.net/cgi/mt/mt-tb.cgi/250

コメント(2)

こんにちは。

私もシックスアパートにフィードバックしましたが、「対応を検討している」という返事が来ました。
本製品に間に合うかどうか微妙な気もしますが、ぜひ対応して欲しいものです。

ちなみに、リッチテキストエディターの内容は、mt-static/js/common/Editor/iframe.jsにあるgetHTMLメソッドで変換されています。
このメソッドを見ると、innerHTMLプロパティをそのまま返していることが分かります。
このメソッドを書き換えて、DOMを使ってHTMLを再構成するというのが、この問題の本質的な解決方法になると思われます。

壱さんこんばんは。

MT4のインターフェイスが変更になった時点で JavaScriptとかAjax使われているあたりブラウザ互換とかで苦労しそうな気がしてましたが、なるほどそうですか。
mt-static/js/common/Editor/iframe.js ですか。

ちょっと見てみようかな。このあたりがOSSじゃないので何だか触りにくいんですよね...

コメントする

Facebook

Twitter

このブログ記事について

このページは、Junnama Nodaが2007年7月20日 17:57に書いたブログ記事です。

ひとつ前のブログ記事は「ウェブコンテンツ・テキストバージョン・ジェネレーター(Naked Beta)。」です。

次のブログ記事は「コメント/トラックバックスパムと戦うための5つのヒント。」です。

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

Powered by Movable Type 6.2.6