MT6上でテーマを作っていて...
- MovableType | Theme | Vicuna
実に1週間ぶりのエントリーですが,以前書いていたテーマの作成は順調に進んでいます.尤も,どこをどうとって「順調」と言えるのかが問題ですが(え
一応表示などのテスト用ブログ(一応,リンクは張っておきます)はちゃんと存在していまして,style-vega,style-mono,style-galaxy,style-flatの4つについては(CSSlevel2ではありますが)表示の調整が済んでいます.残る調整はstyle-futureだけだったりしますが,これも次の週末...いや遅くとも連休前までには何とかしたいと思っています.
あと残っているのはレスポンシブウェブデザインなんですけど,これの関係でまたCSSを弄ることとなってしまうので,公開までにはかなり時間がかかると思われます(ぉ
そんなことだけを書くためにエントリーを起こしたわけではないので早速本題に入ります.MT6にしてからテーマの作成にかかったわけですけど,実はMT5でのテーマの書き方とは微妙に変更しなければならない部分が出てきました.なので,その辺を覚書きしておきます.
1. mtmlファイルでのタブ(インデント)について
MT5までは,mtmlファイルで記述したタブについては全部クリアされていたんですけど,MT6からはしっかりタブも認識されてしまっています(ぉ.以前はタブが消えるのを利用してMTタグでのブロックインデントにタブを利用していたんですが,意味がなくなってしまいました(ぉ
まぁ,これはさほど気にならない部分ではあります.
2. theme.yamlでのid名について
実を言うとこれが一番最初にはまった部分だったんですけど,MT5までだとid名とstaticインポーターで作成されるフォルダ名(と,/mt/themesフォルダ内のテーマフォルダ名)って一致していることが前提だったんですが,MT6ではこの前提がなくなりました.まぁ要するにこういうことだと俺は理解したんだけど,あってますかね?
- theme.yamlでのid名は,あくまでテーマ名固有のものである.
- id名とthemes内に入れるフォルダ名を一致させると,ローカライズ部分の一部が破綻する.
- staticインポーターで{{support}}theme_static/内に作成されるフォルダ名は,id名ではなく,/mt/themes/内に作成されたテーマフォルダ名となる.
以前だとid名と/mt/themes/内に作成されたテーマフォルダ名を一致させて,それが{{support}}theme_static/内に作成されるフォルダ名となる...という解釈だったんだけど,MT6で同じようにやったら,日本語ローカライズ部分がおかしくなってしまいました.
これでは正直シャレにならないので(モジュール名に日本語を使っているからなぁ(苦笑),id名を無視してテーマフォルダ名を固有のものにしたらローカライズについては問題なくなったのですが,今度は{{support}}theme_static/内に作成されるフォルダ名がテーマフォルダ名と一致してしまっていたという(^^;
まぁ,個人的にはこの方が分り易いのでいいんですけどね.結局id名ってMT上でのテーマ識別のための名称でしかないってことなんでしょう.多分...
3. MT標準の日本語ローカライズについて
いや,MT6にしてから改めてmt.Vicuna Originテーマでブログを作ってみて気づいたんだけど,(俺が過去に作ったテーマもそうですが)ローカライズを使っているほとんどのテーマって,MTで最初から登録されているローカライズ部分は,デフォルトで日本語変換されると思い込んでl10n_ja.yamlファイルを作成していると思うんですよね.俺自身もそうだったんですが,ブログを作ってみたら,一部で日本語変換されていない部分があったんですよ.んで,MT6のローカライズファイルを見なおしてみたら,微妙に翻訳前の文言が変わっていた部分があった...という訳.
まぁ,基本的な部分(「ヘッダー」「コメント詳細」とか)は変更されていないので大勢に影響はないんでしょうけど,これにはちょっと面食らいました.当然ローカライズ部分を全部見直すこととなったのは言うまでもありません(ぉ
2014-04-27 18:25追記
先ほどようやく2番目の問題について分かりました.theme.yamlの書き方に問題がありました.今まではtheme.yamlの先頭部分はこうなっていたのですが...
label: mt.Vicuna Theme On HTML5 id: mtv_bh5 author_name: HashiM
こうしたらなんの問題もなくなりました.
label: mt.Vicuna Theme On HTML5 id: 'mtv_bh5' author_name: HashiM
要するにID名についてはフォルダ名を兼ねるので,シングルクオートで囲んだほうが確実ということですね.yamlの書き方にも同じ記述がありました.
マルチバイト文字や「&」を文字列の中に使いたいときは、シングルクォート「'」で囲むことを忘れないで下さい。
Comments:0