MTで画像アップロード時に付く余計な記述を排除

MovableType インターネット
Movable Typeはベタ打ちテキストを自動的に成形してくれるような親切設計...

Movable Typeはベタ打ちテキストを自動的に成形してくれるような親切設計になっているにも関わらず、テキストフォーマットは「なし」で私は使用している。画像中心の構成でソースが少なくて労力もそう要らないし、あれこれ細工するのに便利なのだ。

通常

というわけで、画像アップロードを多用しているわけだが――

00924.gif

位置指定は要らない、と私が言っているのに、どうしてclassとかstyleとか付けてくれちゃうわけ? styleの中身なんて空じゃないか。だったら、styleという文字さえ要らないんだよ。

00925.gif

ちなみに、位置「なし」を選択した場合のclass名は「mt-image-none」、左は「mt-image-left」、中央は「mt-image-center」、右は「mt-image-right」だが、付属のcssファイルにそれらclass名の記述はない。classだけ自動的に付けておくので、自分でcssに書き足して自由にデザインしてね、というスタンスらしい。例えば、後に画像を枠線を付けたりしたくなった時に役立つ。

尚、右寄せだと「class="mt-image-right" style="float: right; margin: 0 0 20px 20px;" 」と出力される。styleの内容を最初からcssに書いておいてくれれば、ソースが無駄に長くならずすっきりするのでは。

システムファイルに記述追加

これを消すプラグインは見つからなかったものの、MTのシステムファイルで弄るべき箇所を教えてくれるサイト(閉鎖)を発見。素人なのでシステムに関わるファイルは出来るだけ改竄したくないのだが、この余計な記述と共にストレスを溜めておくのも嫌なので。

記事のMTバージョンは古く、現行バージョン(6.3.3)では lib/MT/Asset/Image.pm ファイルの357行目と359行目に「位置指定なし」の場合で出力されるclassやstyleが記述されており、それぞれの行頭に「#」を付ける。

00926.gif

結果。

00927.gif

更に個人的改竄

しかし、私はimgにはスラッシュ「/」で閉じない記法で統一している。

00923.gif

412行目、閉じタグ「>」前の、最後の空白とスラッシュ「 /」を排除しただけでは、「>」前にまだ空白が残ってしまう。

00928.gif

問題の行には「%s」が四つ並んでおり、三番目はwidthとheight、四番目がclassとstyleっぽい。レスポンシブ対応を考えると私は右寄せや左寄せのclass指定すら使う予定がない(必要になったらタグを直接入力するつもり)し、その空白がファイル内ソースの何処と関係しているのか見当付かなかったので、最後の「%s」とその前後の空白とスラッシュもばっさり排除してみた。

<img alt="%s" src="%s" %s>

00929.gif

そうそう、私はこうしたかったのよ。というわけで、以下がファイルの最終形態。

00930.gif

こうするのなら、前述の「#」追記は不要。あと、位置「なし」ならば良いが「右」などを使いたい人は、この改竄版は真似しないで下さい。

ホントは「img」の後は「src」で、「alt」は最後に来るのが好みなんだけどね。サイト全体で統一しておきたいので、そこは今更もういい。ただ、これらのソースの前後を見ると、指定した条件によって <img src="~" ~ alt="" /> という順で出力されるようになっていたりで、一つのファイル内でもバラバラだったり。

尚、画像アドレスに「http://~」を付けずに「src="/img/sample.jpg"」という記述にするために、プラグインを利用している。

補足+まとめ

バージョンアップの度に修正すべき行が変更になり、上記文中で412行目は最新版では423行目となっていた。なので、そこを読み替えて「lib/MT/Asset/Image.pm」423行目過ぎくらいのimgタグの最後「 %s /」を消す。

posted on December 23, 2020
-

related entries