エントリー本文
Movable Type 4 のデフォルトテンプレートで @import が表示される問題
いくつかのブログで「Movable Type 4 のデフォルトテンプレートを使用すると @import が上部に表示される」という事象が発生しているようです。
原因はデフォルトテンプレートの「ヘッダー」の7行目にある、
<$MTInclude identifier="styles" trim_to="0"$>
が展開されてしまうためですが、当サイトでは再現しませんでした。
検索してみたところ、Perl 5.8.0 のバグのようです。
この行は styles、つまり「スタイルシート(メイン)」をインクルードするのですが、「最初のN文字を取り出す」という trim_to 属性の値が 0 になっているということは、このタグでは何も表示されないのが正しい動作のところ、Perl 5.8.0 では表示されてしまうようです(7行目が何故必要かについては理解できていませんStyleCatcherで必要らしいです)。
ちなみに、8行目で、
<link rel="stylesheet" href="<$MTLink template="styles"$>" type="text/css" />
と、「スタイルシート(メイン)」を取得しているので、7行目は style 要素で括るのではなく、参照元サイトにある通り、
<MTSetVarBlock name="__null__">
<$MTInclude identifier="styles"$>
</MTSetVarBlock>
が良いでしょう。
追記:あんちもん2.Labさんの MTVoid プラグインでも同様の結果を得られます。
≫ Movable Type 4 でヘッダーにCSSが表示される!? from merisly
Movable Type 4 のデフォルトテンプレート。
?
なんかヘッダーに@importの文が表示されてしまいます。
?
どうやらperlのバージョン... [続きを読む]
≫ MT4をインストールしたら上部に@importが表示される from tatsuyakun.jp
なんじゃこりゃ、mt4をインストールしたら上部に@importとcssファイルへ... [続きを読む]
≫ Movable Type 4 のデフォルトテンプレートで @import が表示される問題 from blog
ずっとやってみたかったMTでのブログ構築がやっとできました。テンプレートのカスタ... [続きを読む]
≫ MT4 のテンプレートで @import が表示される from blog
ずっとやってみたかったMTでのブログ構築がやっとできました。テンプレートのカスタ... [続きを読む]
当座の解決策として、拙作の MTVoidプラグイン を使用する、という方法もあります。
て言いますか、この問題が発生して「中身を評価だけして何も出力しないタグがあればいいのにね」という声を耳ざとく?まえて速攻で作りました(笑)
<MTSetVarBlock>の代わりに、以下のようにすればOKです:
<MTVoid>
<$MTInclude identifier="styles"$>
</MTVoid>
参照: ↓の投稿者名のリンク先を参照
ちなみに
> (7行目が何故必要かについては理解できていません)
StyleCatcher 絡みだそうです。
問題のMTIncludeは、ページに出力する必要は無いけれども、Includeするテンプレートに(StyleCatcher利用時に)書かれているSetVarを評価する必要がある...
出典:mixi内、同問題についてsixapartに問い合わせをした方が先方から得た回答の報告内容より
私も StyleCatcher は使用していないので全然気がつかなかったのですが、そういうことらしいです。
