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

Movable Type 4では、画像等を「アイテム」として管理する機能があります。
アイテムをブログ記事に挿入すると、そのアイテムに応じたタグが自動的に入力されます。

ただ、画像をブログ記事に挿入すると、画像のimgタグがformタグで囲まれて挿入されます。
画像を挿入したことがある方は、「何でformタグが挿入されるんだ?」という印象を持ったのではないかと思います。
また、「formタグは邪魔だ」という意見も多いようです。

ただ、このformタグには意味があります。
今日はこの点について解説します。

1.ブログ記事とアイテムの関連を保存するため

Movable Type 4の新しいタグの中に、「MTEntryAssets」というタグがあります。
このタグは、ブログ記事に入っているアイテムの一覧を出力するものです。

このタグの処理を効率よく行うには、ブログ記事とアイテムの関連の情報を、どこかに保存しておくという方法が考えられます。
Movable Type 4には「MT::ObjectAsset」というクラスがあり、このクラスによってブログ記事等とアイテムとの関連付けが保存されるようになっています。

画像につけられたformタグは、この関連付けの保存の処理を行うために使われています。
ブログ記事を保存すると、その本文の中からformタグが検索され、その情報を利用して関連付けが保存されるようになっています。
したがって、画像からformタグを取ってしまうと、関連付けが保存されず、MTEntryAssetsタグが正しく動作しなくなってしまいます。

2.再構築時にformタグは置換される

また、ブログ記事を再構築すると、formタグはspanタグに置換されるようになっています。

ブログ記事に画像を入れた時点では、タグは以下のように入力されます。

<form mt:asset-id="アセットのID" class="mt-enclosure mt-enclosure-image">
<img alt="画像の代替文字列" src="画像のアドレス" width="画像の幅" height="画像の高さ" class="mt-image-xxx" style="float: xxx; margin: 0 20px 20px 0;"/>
</form>

一方、この部分を再構築すると、以下のようなタグに置き換わります。

<span class="mt-enclosure mt-enclosure-image">
<img alt="画像の代替文字列" src="画像のアドレス" width="画像の幅" height="画像の高さ" class="mt-image-xxx" style="float: xxx; margin: 0 20px 20px 0;"/>
</span>

上記のようなことから、画像を挿入したときのformタグは、ブログ記事から勝手に削除せずに、残しておくようにすることをお勧めします。

MT Cloud Starter Kit
Movable Typeのプラグイン集「MT Cloud Starter Kit」をぜひご利用ください