Movable Type で画像挿入をきれいにする「StylelessImage」

Movable Type4では画像挿入を使いFTPなどを使わずに画像をアップロードできるのですが、これがちょっと曲者です。

画像挿入に挿入されるHTMLソースは以下のような感じになります。

<form mt:asset-id="1" class="mt-enclosure mt-enclosure-image"> <img alt="画像挿入" src="http://blog.webcreativepark.net/img/20071023_01.jpg" width="500" height="361" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;"/> </form>

デフォルトですとimg要素にclassが自動的に挿入されます。

MT4のプラグイン「StylelessImage」を利用すると、このclassが挿入されなくなります。
(「Web2.0言うな」で有名なJunnamaさんが作成されています。)

設置方法はダウンロードしたStylelessImage.pl.zipを解凍、生成されたStylelessImage.plディレクトリ内のStylelessImage.plをMovable Type を設置しているディレクトリ内のpluginsディレクトリに置くだけです。

このプラグインの素敵な所に、画像アップ時の配置設定に「左」、「中央」、「右」に「なし」を追加してくれます。

画像挿入の際に寄せなし

これはちょっと便利

form要素!?

画像挿入時に自動的に挿入されるform要素。最初は毎回、手動で消していたのですが実は意味があるようです

参考:画像を挿入したときにformタグがつく理由

アイテムとエントリーを関連付けるために使用されており、『MTEntryAssets』というタグを使用するときに、その効力を発揮するようです。

しかも、再構築の際にspan要素に置き換えられるようです。

StylelessImageは、置き換えられる要素をspan要素以外にも設定することができます。

MTEntryBodyのassetelement属性で置き換える要素であったり、class名を設定できます。またnを設定することにより空の要素と置き換えるようになります。

<$MTEntryBody assetelement="p"$>
         ↓
<p><img alt="foo" src="bar" width="n" height="n" /></p>
<$MTEntryBody assetelement="p,photo"$>
         ↓
<p class="photo"><img alt="foo" src="bar" width="n" height="n" /></p>
<$MTEntryBody assetelement="div,thumb"$>
         ↓
<div class="thumb"><img alt="foo" src="bar" width="n" height="n" /></div>
<$MTEntryBody assetelement="0"$>
         ↓
<img alt="foo" src="bar" width="n" height="n" /></code>

そもそもform要素なんていらない

MTEntryAssetsなんて使わないし、今までform要素を消していたので今後も使えないし・・・

という方は結構多いかもしれません。私もそうですし・・・

私はStylelessImageを改造して、form要素も挿入されない形で利用さしてもらってます。

StylelessImage.plの120行目あたりに以下の2文を追加しています。

if (align == 'none') {
    tag = tag.replace(/style=.*?>/, '/>');
    tag = tag.replace('class="mt-image-none" ', '');
    tag = tag.replace(/<form mt:asset-id="[0-9]+" class="mt-enclosure mt-enclosure-image">/, '');
    tag = tag.replace('</form>', '');
}

form要素がいらない方は試してみてください。

スポンサードリンク

«理想論というよりは営業トークもしくは逃げ口上 | メイン | アコーディオン形式で内容を表示できるAccordion v2.0»