XHTML 1.0 Strict 版テンプレートをカスタマイズする場合の注意事項
「Movable Type テンプレート(XHTML 1.0 Strict 版)」をご利用の方で、サイドメニューの折りたたみやツリー化等、過去のカスタマイズ記事を適用される場合の注意事項です。
XHTML 1.0 Strict 版では、サイドバーのマークアップに定義リスト(di / dt/ dd)を用いています。マークアップは、おおざっぱには次のようになっています。
<dl id="links-left">
<dt class="sidetitle">メニュータイトルA</dt>
<dd class="side">
<ul>
<li>メニューリストA1</li>
<li>メニューリストA2</li>
:
<li>メニューリストAn</li>
</ul>
</dd>
<dt class="sidetitle">メニュータイトルB</dt>
<dd class="side">
<ul>
<li>メニューリストB1</li>
<li>メニューリストB2</li>
:
<li>メニューリストBn</li>
</ul>
</dd>
:
</dl>
例えば、「サイドメニューの折りたたみ」で用いているマークアップは div を用いた、次のようなマークアップになっています。また、script 要素も存在します。
<div class="sidetitle">メニュータイトルA</div>
<div class="side">
<ul>
<li>メニューリストA1</li>
<li>メニューリストA2</li>
:
<li>メニューリストAn</li>
</ul>
</div>
<script type="text/javascript">
<!--
FoldNavigtion(…);
//-->
</script>
dl の子要素として許容されているのは、dt / dd だけなので、「サイドメニューの折りたたみ」のサンプルマークアップをそのまま XHTML 1.0 Strict 版に埋め込んでしまうと、
<dl id="links-left">
<div class="sidetitle">メニュータイトルA</div>
<div class="side">
<ul>
<li>メニューリストA1</li>
<li>メニューリストA2</li>
:
<li>メニューリストAn</li>
</ul>
</div>
<script type="text/javascript">
<!--
FoldNavigtion(…);
//-->
</script>
:
</dl>
という風になり、
- dl 要素の子要素に div 要素は許容されない
- dl 要素の子要素に script 要素は許容されない
といったエラーが発生し、結果的に valid な(X)HTML になりません。
このような誤ったマークアップにならないよう、
- div 要素は dt / dd 要素に修正
- script 要素は body 終了タグの直前に移動(どうしてもマークアップの近くに配置したい場合は script 要素を dd 要素で括ってください)
等の書き換えを適宜行ってください。
また、昨日の「Ajax によるモジュール化」では、3項の「テンプレートの内容」、
<div class="sidetitle">
Recent Entries
</div>
<div class="side">
<MTEntries lastn="10">
<a href="<$MTEntryPermalink$>" title="e<$MTEntryID$>"><$MTEntryTitle$></a><br />
</MTEntries>
</div>
を、静的な表示部分(赤色)を削除して
<MTEntries lastn="10">
<a href="<$MTEntryPermalink$>" title="e<$MTEntryID$>"><$MTEntryTitle$></a><br />
</MTEntries>
に変更し、4項の
<div id="entries"></div>
<script type="text/javascript">
//<![CDATA[
getFile('<$MTBlogURL$>recentEntries.html', 'entries');
//]]>
</script>
に先程削除したマークアップを追加し、要素名を追加・変更して、
<dt class="sidetitle">
Recent Entries
</dt>
<dd id="entries"></dd>
<dd>
<script type="text/javascript">
//<![CDATA[
getFile('<$MTBlogURL$>recentEntries.html', 'entries');
//]]>
</script>
</dd>
に変更すると良いでしょう。
ただし、先程と同様、script 要素は dd で括るよりも、body 終了タグの直前に移動した方が良いでしょう。
いずれにしても、カスタマイズを行った後は下記のツールを利用して、適切なマークアップになっていることを確認しましょう。
- Movable Typeのコンテンツデータで公開日を比較する方法
- MT7テンプレート作成画面に表示される「コンテンツタイプ」「コンテンツフィールド」の意味
- Movable Typeでテンプレートの動作を簡単に確認する方法
- Movable Typeでスマホサイト用トップページをPCサイト用トップページと異なるURLにする方法
- Movable TypeでCSSファイルやJavaScriptファイルなどを管理するためのTips
- Movable Type 4.2 テンプレートセット(コミュニティ用)修正
- Movable Type 4.2 テンプレートセット(コミュニティブログ対応版)修正
- Movable Type 4.2 テンプレートセット(コミュニティブログ対応版)
- Movable Type 4.2 配布テンプレートセット修正(カテゴリーアーカイブ・コメント完了)
- Movable Type 4.2 テンプレートセット修正(アーカイブインデックス追加等)
- Movable Type 4.2 テンプレートセット修正
- Movable Type 4.1 テンプレートセット修正
- 「iPhoneテンプレートfor MT」 by cremadesign
- Movable Type 4.1 テンプレートセット(スタイル対応版)
- 小粋空間テンプレートセットのカラムレイアウト変更方法
アフェリエイトの貼り方考えたほうがよくありません?
読みづらくて仕方ありません。
さぞお小遣い稼げているんでしょうね…
>読みにくいさん
こんばんは。
ご指摘ありがとうございました。