« Hello World | ホーム | 神田神保町 九頭鳥 »
2007年10月 6日
tips:画像挿入時のタグを変更する方法 - Movable Type 4.0
[ブログ記事を作成] - [画像を挿入] を行うと、
<form mt:asset-id="14" class="mt-enclosure mt-enclosure-image"><img alt="test1.jpg" src="http://hoge.com/blog/imgs/200709/test1.jpg" width="400" height="300" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;"/></form>
などと冗長なタグが出力されるが、これをシンプルに、
<img alt="test1.jpg" src="http://hoge.com/blog/imgs/200709/test1.jpg" width="400" height="300" class="pict"/>
などと出力させる方法。
mt/lib/MT/Asset/Image.pm 内の as_html というファンクションで挿入するイメージタグを作成して、mt/lib/MT/Asset.pm 内の enclose というファンクションにイメージタグを渡すことで、<form mt:asset-id・・・>~</form> で囲って出力がされているので、 mt/lib/MT/Asset/Image.pm 内の as_html ファンクションの以下の行を変更する。
mt/lib/MT/Asset/Image.pm
変更前 return $asset->enclose($text);
変更後 return $text;
また、style="" を削除するために、以下のような変更を実施。
my $wrap_style = '';
if ( $param->{wrap_text} && $param->{align} ) {
$wrap_style = 'class="mt-image-' . $param->{align} . '" ';
if ( $param->{align} eq 'left' ) {
$wrap_style .= q{style="float: left; margin: 0 20px 20px 0;"};
}
elsif ( $param->{align} eq 'right' ) {
$wrap_style .= q{style="float: right; margin: 0 0 20px 20px;"};
}
elsif ( $param->{align} eq 'center' ) {
#$wrap_style .= q{style="text-align: center; display: block; margin: 0 auto 20px;"};
$wrap_style = 'class="pict"';
}
}