Movable Typeのテンプレートは、あなたのサイトのデザインとレイアウトを定義します。 テンプレートは、どこにコンテンツ(エントリーとアーカイブ)を置き、どんなコンテンツにするか、などを記述しています。 通常、テンプレートはHTMLで作成され、Movable Typeのテンプレートのタグと変数が埋め込まれています(テンプレートのタグを参照)が、Movable Typeは、これ以外にもプレーン・テキスト、SSI(サーバーサイド・インクルード)を含むHTML、PHP、およびほかのテキスト形式の言語を生成できます
ウェブログのテンプレートの編集や、新しいテンプレートの定義には、Movable Typeにログインし、ウェブログを選択して、「 テンプレート 」をクリックします。
Movable Typeには数種類のテンプレートがあります。
インデックス・テンプレートはメインのエントリー・リストです。 Movable Typeが他のほとんどのウェブログ管理システムと異なるのは、複数のインデックス・テンプレートをサポートする点です。これは、メインのエントリー・リストを、たとえば、HTMLのリスト、XMLのリストといったように数種類のフォーマットで公開できることを意味しています。 デフォルトではインデックス・テンプレートは、現在からさかのぼった N 日までのエントリーを表示します。 N 日の「 N 」は、ウェブログの設定の中で指定します。 たとえばインデックスに表示される日数を 7 に指定すると、Movable Typeはデフォルトで、すべてのインデックス・テンプレート上で、過去7日間のエントリーを表示します。 7日間というのは、今日からさかのぼった過去の7日間を指し、 エントリーを投稿した日から過去7日間という意味ではありません。 したがって過去7日間(7日目を今日として)の3日目に投稿した場合は、その3日間の投稿がメイン・インデックスにリストされます。
上記にあるように、過去 N 日間のエントリーを表示するのは、インデックス・テンプレートのデフォルト設定です。この設定は、後述の MTEntries タグを使って変更可能です。たとえば、RSSシンジケート用のRSSインデックスを、日数に関係なく過去15エントリーが表示されるよう設定できます。
アーカイブ・テンプレートは、ウェブログ・アーカイブの外観や使い勝手を定義します。 選択した各アーカイブの種類(「アーカイブの設定」を参照)に対して、複数のアーカイブ・テンプレートを関連付けられるので、アーカイブしたエントリー群を異なる表示形式に設定できます。 たとえば、月毎のアーカイブに対し、エントリーを月毎にまとめて見せてくれるページと、月毎にカレンダー表示するページの2種類の表示形式を作成することができます。 あるいは異なるテンプレートを使って、アーカイブをハイテク風にも手作り風にも見せることができます。
ある種類のアーカイブが再構築されると、同じ種類のアーカイブに属するすべてのテンプレートも再構築されるため、ある種類のアーカイブの複数の表示形式が自動的に維持されます。
Movable Typeには以下の3つのアーカイブ・テンプレートが搭載されています: 日付に基づくテンプレート( 月別 、 週別 、 日別 )、 カテゴリー ・アーカイブ用テンプレート、 個別 のエントリー・アーカイブ用テンプレート
新しいアーカイブ・テンプレートを定義するには、「 テンプレート 」に行き、「 新しいアーカイブ・テンプレートを作る 」をクリックします。 テンプレートに名前を付け、Movable Typeの「テンプレートのタグ」を使ってアーカイブ・ページのレイアウトを定義します。 新しいアーカイブ・テンプレートを保存したら、「 ウェブログの設定 」の「 アーカイブの設定 」に移動し、「 テンプレート: 」プルダウン・メニューで先ほど作成したテンプレートを選択し、そのテンプレートに関連づけるアーカイブの種類を、「 アーカイブの種類: 」メニューから選びます。 そして「 追加 」ボタンをクリックします。
Movable Typeを使うと、共通して利用するひとまとまりのHTMLコードをテンプレートとして抽出でき、他のテンプレートに埋め込むことができます。Movable Typeではこうした汎用テンプレートを「 テンプレート・モジュール 」と呼んでいます。 テンプレート・モジュールの利用例としては、サイト全体で使うヘッダーがあります。 「 Header 」という新しいテンプレート・モジュールを作成し、共通して利用するヘッダー・コードを貼り付け、新しいテンプレート・モジュールとして保存します。 このコードは MTInclude タグを使うことで、他のすべてのテンプレートに埋め込むことができます。
<$MTInclude module="Header"$>
このタグは先ほど作った Header テンプレート・モジュールの内容に置き換わります。
こうしておくと、共通して利用するコードを1カ所に保存でき、修正もそのテンプレート・モジュールだけで済むので、作業が楽になります。
テンプレートの中には、インデックス・テンプレート、アーカイブ・テンプレート、およびカスタム・テンプレートのいずれにも属さないテンプレートがあります。 以下にこうしたテンプレートを列挙します。
このテンプレートは、コメントにポップアップ・ウィンドウを使うよう選択した場合(上記の「 コメント 」を参照)、コメント・ページのレイアウトを定義します。
このテンプレートは、コメントの確認(プレビュー)を使うよう選択した場合(デフォルトでは選択済み)、コメントの確認ページのレイアウトを定義します。
このテンプレートは、ユーザーがコメントを投稿した際にエラーが発生したとき、ユーザーに表示されるエラーメッセージを定義します。エラーとは、たとえば、名前やメールアドレスが入力されていない、メールアドレスやURLが無効である、などを指します。 このテンプレートを使うと、コメント投稿時のエラーをユーザー自身が修正してコメントを再投稿できるようにできます。
コメントの設定によっては、ユーザーが投稿したコメントをすぐにサイトに表示しないようにすることも可能です。たとえば、コメントの事前確認を有効に設定した場合などです。 「コメント保留のテンプレート」は、投稿したコメントがすぐには表示されないよう設定している場合、コメント投稿時にユーザーに表示されるメッセージを定義します。 このメッセージを設定しておくと、ユーザーはコメントが受理されたことを確認でき、コメントが表示されるまで投稿を繰り返す試みを止めてくれます。
このテンプレートは、システムで特定のエントリーに送られたトラックバックpingを一覧表示するポップアップ・ウィンドウのレイアウトを定義します(「トラックバック・システムについてのドキュメント」を参照)。
画像をアップロードすると、新しいエントリーにその画像を埋め込むか、その画像へのリンクを張るかの選択を、ポップアップ・ウィンドウで尋ねられます。 リンクを張ることを選択し、「 画像のポップアップ・ウィンドウのテンプレート 」のレイアウトを定義した場合は、ポップアップ・ウィンドウにその画像を含むように、HTMLファイルが自動作成されます。 このテンプレートには以下の3つのテンプレート・タグを使うことができます: <$MTImageURL$> 、 <$MTImageWidth$> 、および <$MTImageHeight$>
テンプレートの種類や、テンプレート・モジュールとテンプレートのどちらを編集するかで、テンプレート編集画面の内容はやや異なります。 たとえば、「 出力ファイル名 」は「 インデックス・テンプレート 」に対してだけ割り当てられます。
以下は「 テンプレートの編集 」画面で表示されるフィールドです。
これは「 テンプレートの編集 」画面で指定するテンプレートの名前です さらに、 <MTInclude> を使ってテンプレート・モジュールを含める場合は、そのテンプレート・モジュール名もこのフィールドで指定する必要があります。
テンプレート名は、インデックス・テンプレートとテンプレート・モジュールに限り、変更可能です。アーカイブ・テンプレートとその他のテンプレートの名前は自動的に割り当てられます。
インデックス・テンプレートを編集するときには、テンプレートの出力先のファイル名を指定する必要があります。 たとえば、メイン・インデックス・テンプレートの出力ファイルは index.html になることもあります。出力ファイルはインデックス・テンプレートだけに適用されます。 出力ファイル名は、あなたの ローカル・サイト・パス に対しての相対パス(たとえば、 file.html )にすることも、ファイルシステムのルートからのフルパス(たとえば、 /full/path/to/file.html )にすることもできます。
インデックス・テンプレートを編集するときに、テンプレートの再構築を自動的に行う方法と手動で行う方法の2つのオプションがあります。自動的な再構築を選ぶと、エントリーを保存するたびに、すべてのファイルが再構築されるか、あるいはインデックスが再構築されます。 通常は、インデックス・テンプレートを自動的に再構築する方を選択してください。 だだし、インデックス・テンプレートを使って主にスタティック・コンテンツを管理しているときなど、エントリーを新しく加えるたびにインデックス・テンプレートを再構築しなくてもよい場合もあります。 スタティックなインデックス・テンプレートを不必要に再構築すると、新しいエントリーの追加プロセスが遅くなります。
このオプションを使うと、インデックス・テンプレートの自動的な再構築をオフにできます。 自動的な再構築をオフにした後、インデックス・テンプレートを再構築する唯一の方法は、「 テンプレートの編集 」でテンプレートの名前をクリックし、テキスト編集ボックスの下にある「 再構築 」ボタンをクリックする方法です。 これによって指定されたインデックス・テンプレートは再構築されます。
テンプレートの内容を編集するとき、Movable Typeのウェブ・アプリケーション以外で編集した方が簡単な場合もよくあります。たとえば、コードがハイライトされるテキスト・エディタでHTMLを編集するのを好む人が多くいます。 Movable Typeのテンプレートを外部のファイルにリンクすると、Movable Typeにあるテンプレートのコピーをその外部のファイルと同期しながら、外部のアプリケーションでテンプレートを編集することができます。 同期プロセスは双方向に働きます。テンプレートを編集するとき、リンクされている外部のファイルが最新のファイルがどうかチェックされます。Movable Typeでテンプレートを保存するときは、変更に応じて外部のリンクされているファイルも更新されます。 リンクされているファイル名の値は、外部ファイルまでのファイルシステムへのフル・パス、あるいはウェブログの ローカル・サイト・パス に対しての相対パスのどちらかにしてください。 ファイルの拡張子は、セキュリティ上の理由から、 .cgi 、 .pm 、 .pl 、または .cfg にはできません。したがって、Movable Typeのプログラム・ファイルが上書きされることはありません。 たとえば、 メイン・インデックス ・テンプレートを外部のエディタで編集・更新する場合、リンクした外部のファイル名を index.html.tmpl などの値に指定します。 すると、このファイルを外部で編集してウェブサーバーに保存できます。再構築するときは、Movable Typeがこのリンクした index.html.tmpl ファイルの最新バージョンにアクセスし、それをテンプレートとして使います。さらにMovable Typeは、Movable Typeのデータベースにあるテンプレートのコピーも更新します。したがって、次回、Movable Typeでテンプレートが必要なときに、Movable Typeはデータベースにあるそのコピーを使うことができます。
注:新しいテンプレートをテンプレートの中身を指定せずに作成し、すでに存在しているファイルにリンクすると、そのファイルの内容がテンプレートに読み込まれます。 ただしテンプレートの中身を 指定し 、既存のファイルにリンクすると、そのリンクしたファイルの内容は、指定したテンプレートの中身に置き換わります
外部のファイルにテンプレートをリンクさせる機能はオプションです。Movable Typeのアプリケーションだけですべてのテンプレートを更新していくこともできます。
テンプレートの中身には、テンプレートのタグ(「テンプレートのタグ」を参照)やその他のマークアップ(HTMLなど)を含みます。
Movable Typeは、スタイルシートでカスタマイズできるデフォルト・テンプレートのセットを搭載しています。 これらのデフォルト・テンプレートはhttp://www.movabletype.jp/default_templates.shtmlで閲覧できます。
ウェブログに新しいスタイルを適用するには、以下の手順に従います。
注:ブラウザ(たとえばInternet Explorer) の中には、一度スタイルシートをロードすると、再びウェブサーバーからロードしないものがあります。サイトを見て見た目が変わっていない場合は、ブラウザのキャッシュを空にして、再び試してみてください。