- 2009-10-20 (火) 00:22
- MovableType


- サクッとMT5テーマ作成ネタ(1)
前エントリーで公開したMT5テーマについて、こちらで理解している(もしかしたら勘違いしている)部分を公開します。
両者の違い
といっても、大枠は今までの「config.yaml」による「テンプレートセット」の作成(テンプレートセットの登録 | Movable Type 4 ドキュメント)と、ほとんど変わりません。両者に関しての気づいた違いについて書きます。
「テンプレートセット」はプラグイン一覧に表示されるが、「テーマ」は表示されない。
一番大きな違いは「テンプレートセット」が「テンプレートセット・プラグイン」である事ではないかと思います。今回MT5で採用された「テーマ」はあくまでも、事前に用意されたテーマの適用と言うアクションのみを行うように作られているのに対し、「テンプレートセット・プラグイン」はプラグインとしてMTの各種動作に割り込みをかけることが出来ます。
「テーマ」を使用する場合は、用意されたインポーター以外の動作をさせる事は出来ない訳ですね。まぁここら辺は、そのうち「テーマ」機能を拡張するプラグインとかが出てきそうな気がしますけど。
といいつつも、標準で用意されているインポーターは、「カテゴリ」「フォルダ」「ファイル」「テンプレートセット」「カスタムフィールド」と基本的なものはほぼそろっているので、通常はそれだけで問題ないと思われます。
どちらもテーマ一覧に表示される。
「テーマ」「テンプレートセット」の区別無く、テーマ一覧に表示されます。ただし「テーマ」には後述する「ブログ用」と「ウェブサイト用」の2種類があり、表示しているが「ウェブサイト」なら「ウェブサイト用」のみ、「ブログ」なら「ブログ用」のみのテーマが表示されます。既存の「テンプレートセット」に関しては、「ブログ」でのみ表示されます。(ウェブサイト向けテンプレートセットの書き方が存在する可能性がありますが、詳細は不明です)
テーマ一覧で表示されるサムネイルは、テンプレートセットでも使える。
MT5用テーマは、テーマ一覧でサムネイルが表示されています。これはその為の記述があるからですが、「プロフェッショナル・ウェブサイト」(Professional Pack 1.5)の様に、config_yamlでもサムネイル指定が可能なようです。ただしその内容を見るとYAMLのルート項目名が「template_sets:」から「themes:」へと変更されています。従来のテンプレートセットにサムネイル指定を追加するだけでは、駄目なのかもしれません。(といってもたいした修正ではないのですが)
thumbnail_file: thumb.png thumbnail_file_medium: thumb-medium.png thumbnail_file_small: thumb-small.png
一応ファイル名を指定しているので、ファイル名固定と言うわけでは無さそうですね。
theme.yamlとconfig.yamlの中身の比較
テーマ・テンプレートセットそれぞれ自分自身についての情報部分
詳しいドキュメントが無いので、実物を見て比べてみる。まずは「theme.yaml」の場合。
label: mt.Vicuna Theme id: mt_vicunae author_name: wu author_link: http://3ping.org/ version: 2.2.1bis class: blog description: <__trans phrase="A MT5 Theme for Vicuna CMS."> l10n_lexicon: ja: l10n_ja.yaml thumbnail_file: thumb.png thumbnail_file_medium: thumb-medium.png thumbnail_file_small: thumb-small.png
そして今までの「config.yaml」の場合。
key: MT::Plugin::mtVicuna name: mtVicuna Template Set l10n_class: mtVicuna::L10N description: A Template Set for Vicuna CMS. author_name: wu author_link: http://3ping.org/ plugin_link: http://mt.vicuna.jp/ version: 2.2.1
すごーく当たり前の事だけど、プラグインじゃないから「key:」というのは存在しない。(試しに書いたらハデにエラー出た <だから試すなって
)もちろん「plugin_link: 」だの「doc_link: 」だのは書いてもスルーされる。(こっちはエラーにはならない
)
「label:」と「name:」の違いは、まぁそんなもんだと思っとけばいいのかな?どっちでもよさそうな気がしてるのだけれど。テーマ一覧に表示される、テーマ名は「label:」+「version:」になってますね。確かプラグインは数字だけにするとか決まりがあったみたいだけど、おそらくテーマでは問題にならないと思うな。動作的には問題ないみたい。
後テーマの種類を表す「class:」ってのが増えている。これが「blog」だとブログ用。「website」だとウェブサイト用ってマンマじゃん!
一番違うなぁって感じたのが、L10Nのローカライズ部分。今まではPerlモジュールL10N.pmにやらせてたのだけれど、プラグインではないので、直接変換テーブルのYAMLファイルを指定するように変わった。
「l10n_class: mtVicuna::L10N」から「l10n_lexicon:」ってのになった訳ですね。しかも今までは決められた場所に言語ファイル(日本語ならja.pm)が存在すれば、自動で読み込まれる設定だったんだけど、テーマでは「 ja: l10n_ja.yaml」と言う風に、用意した変換辞書ファイル(この場合はl10n_ja.yaml)毎に書いてやらないといけなくなったようです。
それから変換辞書自体も、チラッと書いたけどPerlでの書き方からYAMLの書き方になり、区切り文字が「:」になった関係で「: 」を含む文字列の指定が出来なくなっています。(エスケープすれば大丈夫かしら)
「l10n_ja.yaml」はこんな感じで、「: 」でつないで改行で一対になってます。
Header: ヘッダー Footer: フッター HTML Header: 共通Head内要素
ずいぶん簡単です。基本部分はこんな風になってます。
長くなってきたので、インポーターとかは次のエントリーにします。おやすみなさい。
- Newer >: サクッとMT5テーマ作成ネタ(2)
- < Older: mt.VicunaをMT5テーマ化してみました
ping a Trackback
- TrackBack URL for this entry.(1)




スクリプトの読み込みが完了していません。
メールフォーム(Javascriptを使用していません)や、
Twitter経由のCommentでもReplyいたします。ただし返信はブログのコメントとして行う事もあります。