Home> Internet >  MovableType >  MTタグ記述の揺らぎと構文チェック

MTタグ記述の揺らぎと構文チェック

MTタグは記述の揺らぎを認めていて、いろんな書き方ができますよね。

テンプレートタグの書式
Movable Type 3.x までは、<$MTEntryTitle$> と大文字・小文字で書く部分がしっかりルール化されていましたが Movable Type 4 では大文字・小文字の区別を行いません。

[Movable Type 4 ドキュメント:(2012年3月31日 22:50:47 引用)]

私自身はMT3スタイルの記述が一番しっくりきていて、ずっとそのスタイルで書いているのですが、ここ最近は値を出力しないタグに対して、「単体で動作するファンクションタグは、XHTML の br (forced line break) 要素のように、書くことができます。」というのを使うようにしてました。

とある案件で理由不明な動作が発生して、原因を探っていたのですが、該当箇所には以下のように記述してました。

<MTBlogExtendLink setvar="extend_link" />

これって、私的には

<MTSetVarBlock name="extend_link"><$MTBlogExtendLink$></MTSetVarBlock>

のつもりだったんですが、なんか動きがおかしいんです。(<$MTBlogExtendLink$>タグ自体は、とある製品により提供されるカスタムタグです。)

いろいろテストしていて原因が解らないので、出力値を確認してみようとsetverモディファイアを外してみたら、なんと閉じタグがないと怒られました。

<MTBlogExtendLink>

ここでしばし思考停止に陥りました・・・?
え、閉じタグ・・・・・・・
しばらくして立ち直ってから、閉じタグ書けばいいのかと思い試しに書いてみたら、確かにエラーが出なくなりました。

そこで、初めて気づいたんです。
MTBlogExtendLinkタグは、ファンクションタグではなく、ブロックタグだ!

XHTMLの<br />って、実は<br></br>の事だということを思いだしました。
つまり今まで、ファンクションタグのつもりで書いていたものは、実は以下の内容だったということが発覚しました。

<MTBlogExtendLink setvar="extend_link"></MTBlogExtendLink>

そういう事かぁ。!
という訳で、明らかにブロックタグをファンクションタグと勘違いしていた私が悪いわけですが、こういう落とし穴もあるよという話でした。

その後は、「XHTML の br (forced line break) 要素の書き方」は、使うのやめました。
こういう所でハマるの嫌なので。

あ、ちなみにブロックタグ自体も値を出力するので、あの書き方で値がセットされないとかいう話ではありません。
ちょっと自分が思っていた内容とは違うものがセットされてしまっていただけです。
よくあるパターンでは、ブロックタグはブロック内の繰り返しの回数を出力したりするものがありますし、単に内部の処理が行われるかどうかを返すものもあります。

<MTEntries>
出力有り
<MTElse>
出力なし
</MTEntries>

みたいな使い方は、その応用ですね。

Comment:0

Comment Form

Trackbacks:0

TrackBack URL for this entry
http://www.zelazny.mydns.jp/cgi-bin/MT/mt-tb.cgi/2261

Home> Internet >  MovableType >  MTタグ記述の揺らぎと構文チェック

CC Licence

Creative Commons License

このブログはクリエイティブ・コモンズでライセンスされています。

Feeds

Return to page top