Movable Type 備忘録
テンプレートセットの作り方
- Next Page: CSS ファイルの圧縮転送
- Prev Page: Ajaxでアクセス・ランキングを表示する6
こんにちわ^^
Firefox 3 は今までと違ってサクサク表示されるようです (●´∀`●)
今のところ Firefox 3 は今お使いの Firefox と共存することができる(Windws 版だけ)ようなので、わたしも試しにインストールしてみます。
でもねぇ、今のわたしの興味は Firefox 3 よりも Safari 3 なのです (; ̄∇ ̄A 一目ぼれってヤツ !?
厚みがない、平面的なデザインが気に入ってます。
まだ、いろいろ不便なところは多々ありますが、それでも Safari なのです。
Safari にも Firebug みたいな機能があるといいなぁと思うのココロ。
さて、タイトルにもあるように今回はテンプレートセットの作り方です。
自分専用のテンプレートセットを作ってみよぉ!! です。
- 2008.02.25 追記 -
何だか
oscar
さんとこで結構重要なことかかれてました。
参考にしてちょ ( ̄∇ ̄)/
- 2008.02.24 追記 -
友人から指摘されて (; ̄∇ ̄A、図を入れるなどしてもぅ少し分かりやすく説明してみました。
テンプレートセットの入手
テンプレートセットの作り方はカンタンです。
まずはベースとなるテンプレートセットを以下のページから入手します。
上記ページの下の方に YAML(ヤムル)版と Perl 版があります。基本的なところはどちらも同じなのでお好みでどうぞ。
とりえあずここでは、記述が楽な YAML 版で説明していきます。
ウィキペディアにもあるように、YAML 版はタブが使用できないのでご注意ください。
ディレクトリ構成
ここで説明するテンプレートセットは、以下のようなディレクトリ構成とします。
http://bizcaz.com/
|
+-- mt/
| +-- plugins/
| | +-- bzbell/
| | | +-- config.yaml
| | | +-- templates/
| | | | +-- archive_entry.mtml
| | | | +-- archive_page.mtml
| | | | +-- archive_data_based.mtml
| | | | +-- archive_calendar.mtml
| | | | +-- index_main.mtml
| | | | +-- index_archive.mtml
| | | | +-- styles_main.mtml
| | | | +-- styles_theme.mtml
| | | | +-- system_search_results.mtml
| | | | +-- system_comment_preview.mtml
| | | | +-- module_header.mtml
| | | | +-- module_footer.mtml
| | | | +-- widget_powered.mtml
赤い字のディレクトリ名は、ユニーク(他プラグインと重複しない)名称とする必要があります。 任意な名称で構いませんが、半角英字のみ使用可能です。アンダーバー( _ )やハイフン( - )などの記号は使用できません。
青い字のファイルがこれから説明する、テンプレートセットのプラグインになります。
ファイル名は変更しないでください。
緑の字のファイルが、各テンプレートのファイルになります。
ファイル名は任意で決めることができます。
たとえば、わたしの場合はファイルの先頭の文字によってテンプレートの種類を区分けしています。
- archives_
アーカイブテンプレート - index_
インデックステンプレート - system_
システムテンプレート - module_
テンプレートモジュール - widget_
ウィジェット
- 2008.02.25 追記 -
システムテンプレートはファイル名を任意に変更できないことが分かりました。
試しにテンプレートの適用はできるのですが、なぜか自分のテンプレートが使用されず、デフォルトのテンプレートが使用されてしまいます。
よって、システムテンプレートはデフォルトのままにしてください。
各自で管理しやすいようにプレフィックスを付けるといいです ( ̄∇ ̄)b
また、ファイルの拡張子は必ず .mtml である必要があります。
テンプレートセットの説明
MyPlugin フォルダの中に config.yaml というファイルがあります。
これがテンプレートセットの本体になります。
上記ディレクトリ構成を元に作った config.yaml を以下に記します。
また、このテンプレートセットを元に説明していきます。
config.yaml
key: MT::Plugin::bzbellname: bzbell Template Setdescription: Template Set for bzbell.author_name: bzbellauthor_link: http://bizcaz.com/version: 1.0template_sets:bzbell_set:label: わたし専用テンプレートセットbase_path: templatesorder: 50templates:## for index templates## ▼ここからインデックステンプレート用▼index:# ★index_main:label: インデックス(メイン)outfile: index.phprebuild_me: 1# ★index_archive:label: インデックス(アーカイブ)outfile: archives/index.phprebuild_me: 1# ▲ここまでインデックステンプレート用▲## only individual, webpage archive template## ▼ここからブログページ、ウェブページ用▼individual:# ★archive_entry:label: ブログページmappings:entry_archive:archive_type: Individualfile_template: %y/%m/%d-%h%n%s%x# ★archive_page:label: ウェブページmappings:page_archive:archive_type: Page# ▲ここまでブログページ、ウェブページ用▲## for otherwise archive templates## ▼ここからカテゴリページ、月別ページなどのアーカイブページ用▼archive:# ★archive_data_based:label: アーカイブmappings:# ☆monthly:archive_type: Monthlyfile_template: %y/%m/%ipreferred: 1# ☆category:archive_type: Categoryfile_template: %-c/%i# ★archive_calendar:label: カレンダーmappings:monthly:archive_type: Monthlyfile_template: %y/%m/calendar%xpreferred: 0# ▲ここまでカテゴリページ、月別ページなどのアーカイブページ用▲## for system templates## ▼ここからシステムテンプレート用▼system:# ★system_search_results:label: 検索結果# ★system_comment_preview:label: コメントプレビュー# ▲ここまでシステムテンプレート用▲## for template modules## ▼ここからテンプレートモジュール用▼module:# ★module_header:label: ヘッダー# ★module_footer:label: フッター# ▲ここまでテンプレートモジュール用▲## for widget templates## ▼ここからウィジェット用▼widget:# ★widget_powered:label: MT Powered# ▲ここまでウィジェット用▲
テンプレートセットは右図のような階層構造になってます。
右図①が階層構造のテンプレート全体を示し、Movable Type
の管理画面からテンプレート一覧を表示すると、
- インデックステンプレート
- アーカイブテンプレート
- システムテンプレート
- テンプレートモジュール
- ウィジェット
というように区別されてますね。それが②に該当します。
そして、③が個々のテンプレートに相当します。
ただし、アーカイブテンプレートだけは記事テンプレート(ブログページ、ウェブページ)とアーカイブテンプレート(カテゴリページ、月別ページなど)のように分けて設定します。
また、アーカイブマッピングについての設定も必要なので、④、⑤のようにそのテンプレートがどのアーカイブのものかを指定する必要があるわけです ( ̄∇ ̄)b
ですので、考え方としては③の単位で各自のテンプレートを記述していくことになります。
以降でもう少し細かく説明していきます。
プラグインのヘッダ部
プラグインのヘッダ部について説明します。
config.yaml 1 ~ 6 行目
key: MT::Plugin::bzbellname: bzbell Template Setdescription: Template Set for bzbell.author_name: bzbellauthor_link: http://bizcaz.com/version: 1.0
赤い字の部分はプラグイン名になります。
上記例だと bzbell プラグインということを明示してます。
任意の名称で構いませんが、半角英字のみ使用可能です。
青い字の部分はプラグイン一覧で表示されるプラグインの名称です。 任意の名称で構いません。
その他に、プラグイン説明(description)、プラグイン作者名(author_name)などありますが必須ではありません。 不要でしたら削除します。
テンプレートセットのヘッダ部
テンプレートセットのヘッダ部について説明します。
config.yaml 8 ~ 12 行目
template_sets:bzbell_set:label: わたし専用テンプレートセットbase_path: templatesorder: 50
青い字の部分はテンプレートセットのセクションになります。 1 つのプラグインで複数のテンプレートセットを明記する場合には、重複しない名称にする必要がありますが、1 プラグイン/1 テンプレートセットの場合には変更しなくっても問題ありません。
赤い字の部分はテンプレートセットを適用する際、一覧表示される名称になります。 任意の名称で構いません。
緑の字の部分は各テンプレートのファイルが格納されてディレクトリ名称を指定します。
たとえば、上記ディレクトリ構成でいうと、bzbell.yaml がある場所を基準に、各テンプレートを格納した templates ディレクトリの名称を指定することになります。
ピンクの字の部分はテンプレートを適用する際一覧表示される順番を示します。
この番号が小さいほど上に表示されるます。
インデックステンプレート
自分専用のインテックステンプレートを記述していきます。
config.yaml 17 ~ 25 行目
index:index_main:label: インデックス(メイン)outfile: index.phprebuild_me: 1index_archive:label: インデックス(アーカイブ)outfile: archives/index.phprebuild_me: 1
赤い字の部分はテンプレート識別子を記述します。
ここにはテンプレートファイル名の .mtml を省いた名称を指定します。必ずファイル名と一致させてください。
また、ここで指定した識別子は MTLink タグで使用することができます。たとえば、以下のようなかんじ。
<$MTLink template="index_main"$>
青い字の部分にはテンプレート名称を記述します。
任意の名称で構いません。各自で管理しやすいテンプレート名称を付けます。
緑の字の部分には再構築後のファイル名を記述します。
ディレクトリを指定することもできます。ブログのトップページからの相対パスとなります。
たとえば、上記例だと「インデックス(アーカイブ)」の出力ファイル名のように記述します。
ピンクの字の部分には自動的に再構築時を行うか否かを設定します。
- 0: 自動的に行わない。
- 1: 自動的に行う。
以上でインデックステンプレートの記述は完了です。
15 ~ 18 行目を一塊として、必要な分だけコピー & ペーストすることで、自由にインデックステンプレートを追加していきます。
アーカイブテンプレート
自分専用のアーカイブテンプレートを記述していきます。
アーカイブテンプレートには 2 つのセクションがあります。
#
# only individual, webpage archive template
#
individual:
archive_entry:
label: ブログページ
mappings:
entry_archive:
archive_type: Individual
file_template: %y/%m/%d-%h%n%s%x
archive_page:
label: ウェブページ
mappings:
page_archive:
archive_type: Page
#
# for otherwise archive templates
#
archive:
archive_data_based:
label: アーカイブ
mappings:
monthly:
archive_type: Monthly
file_template: %y/%m/%i
preferred: 1
category:
archive_type: Category
file_template: %-c/%i
archive_calendar:
label: カレンダー
mappings:
monthly:
archive_type: Monthly
file_template: %y/%m/calendar%x
preferred: 0
赤い字の部分がブログ記事、ウェブページアーカイブ用テンプレートを記述するためのセクション(individual)です。
そして、青い字の部分はカテゴリ、月別アーカイブなどのテンプレート用のセクション(archive)になります。
individual セクション
config.yaml 29 ~ 40 行目
individual:archive_entry:label: ブログページmappings:entry_archive:archive_type: Individualfile_template: %y/%m/%d-%h%n%s%xarchive_page:label: ウェブページmappings:page_archive:archive_type: Page
上記はブログ記事アーカイブ、ウェブページアーカイブ用の記述です。
19 行目の individual というセクション内に記述します。通常だと上記例のように、2 つのテンプレートを記述するだけだと思います。
赤い字の部分はテンプレート識別子を記述します。 ここにはテンプレートファイル名の .mtml を省いた名称を指定します。必ずファイル名と一致させてください。
青い字の部分はテンプレート名称を記述します。ここでの名称が Movable Type のテンプレート一覧に表示される名称です。
任意の名称で構いません。各自で管理しやすいテンプレート名称を付けます。緑の字の部分はマッピングタイプを記述します。
individual セクションの中では entry_archive(ブログ記事)か page_archive(ウェブページ)の何れかを選択するのみです。ピンクの字の部分はアーカイブタイプを選択します。
individual セクションの中では Individual(ブログ記事)か Page(ウェブページ)の何れかを選択するのみです。黄色の字の部分はアーカイブマッピングの出力ファイル名を記述します。
再構築時に生成されたファイルのフォーマットを指定します。実際には、アーカイブテンプレート一覧にある「ブログ記事」テンプレートを表示してみてください。
下の方にアーカイブマッピングとありますので、そちらで表示されてるパスを指定することになります。
また、ドロップダウンリストから「カスタム...」を選択すると出力フォーマットをコピーすることができます。出力フォーマットの指定は必須ではありません。デフォルトのままでよければ、'file_template' の行を削除します。
archive セクション
config.yaml 44 ~ 61 行目
archive:archive_data_based:label: アーカイブmappings:monthly:archive_type: Monthlyfile_template: %y/%m/%ipreferred: 1category:archive_type: Categoryfile_template: %-c/%iarchive_calendar:label: カレンダーmappings:monthly:archive_type: Monthlyfile_template: %y/%m/calendar%xpreferred: 0
上記は月別アーカイブなど、ブログ記事、ウェブページアーカイブ以外のアーカイブテンプレートを記述していきます。
青い字の部分は先ほどの individual セクションで説明した内容と同じです。赤い字の部分はマッピングタイプを記述します。そして、緑の字の部分はアーカイブタイプを選択します。
マッピングタイプとアーカイブタイプは必ず対にする必要があり、以下の中から選択することになります。アーカイブ名 マッピングタイプ アーカイブタイプ ブログ記事 individual Individual ウェブページ page Page 日別 daily Daily 週別 weekly Weekly 月別 monthly Monthly 年別 yearly Yearly ユーザー別 author Author ユーザー - 日別 author_daily Author-Daily ユーザー - 週別 author_weekly Author-Weekly ユーザー - 月別 author_monthly Author-Monthly ユーザー - 年別 author_yearly Author-Yearly カテゴリ category Category カテゴリ - 日別 category_daily Category-Daily カテゴリ - 週別 category_weekly Category-Weekly カテゴリ - 月別 category_monthly Category-Monthly カテゴリ - 年別 category_yearly Category-Yearly ピンクの字の部分はマッピングの優先度を示します。
たとえば、上記例だと 'monthly' マッピングとして、「月別」アーカイブと「カレンダー」アーカイブで使用しています。
このままだとどっちのテンプレートを使用していいのか分かりませんね ( ̄∇ ̄)b
そこで、優先度を設定してあげることでデフォルトの 'monthly' マッピングを決める必要があります。- 0: 優先しない
- 1: 最優先
システムテンプレート
自分専用のシステムテンプレートのを記述していきます。
config.yaml 65 ~ 69 行目
system:system_search_results:label: 検索結果system_comment_preview:label: コメントプレビュー
赤い字の部分は今まで説明したように、テンプレート識別子を記述します。
ここにはテンプレートファイル名の .mtml を省いた名称を指定します。必ずファイル名と一致させてください。
青い字の部分はテンプレート名称を記述します。ここでの名称が
Movable Type
のテンプレート一覧に表示される名称です。
任意の名称で構いません。各自で管理しやすいテンプレート名称を付けます。
テンプレートモジュール
自分専用のテンプレートモジュールを記述していきます。
config.yaml 73 ~ 77 行目
module:module_header:label: ヘッダーmodule_footer:label: フッター
赤い字の部分はテンプレート識別子を記述します。
ここにはテンプレートファイル名の .mtml を省いた名称を指定します。必ずファイル名と一致させてください。
青い字の部分はテンプレート名称を記述します。ここでの名称が
Movable Type
のテンプレート一覧に表示される名称です。
任意の名称で構いません。各自で管理しやすいテンプレート名称を付けます。
ウィジェット
自分専用のウィジェットを記述していきます。
config.yaml 81 ~ 83 行目
widget:widget_powered:label: MT Powered
内容はテンプレートモジュールと同じです。
テンプレートセットの作成
プラグインの記述が終わったら、後は記述通りに今お使いのテンプレートをファイルにコピー(作成)していくだけです。
その際ファイル名は必ず、プラグイン内で明記したテンプレート名称+.mtml
というフォーマットで保存してください。
一通りコピーし終わったら、mt/plugins/ ディレクトリ内にアップロードして、以下のページを参考にテンプレートの適用確認を行います。
最後に
実はまだ説明してないことが結構あったりするのですが、基本的なテンプレートセットは上記で十分だと思います。
機会があれば追々説明していきますが、まずは基本的なテンプレートセットでオリジナルを作って、テンプレート差し替えを楽にしてみてください (●>∀<●)/
てか、やってみるとテンプレートセットの作成なんて、そんな大したことないことが分かると思います。
言い換えると、Movable Type
が大したことないようにしてくれてるってかんじでしょうか。
便利なので試してみてください ( ̄∇ ̄)/
Trackback Pings(0)
No trackbacks found.
Comments(0)
No comments found.


Post a Comment