ブログのデザインをリニューアルしました
目次
少し記事を書くのが遅くなりましたが、ブログのデザインをリニューアルしました。mersy からこのブログについて「スマホで読みにくいの、3日間でなんとかならない?」的な指摘を受けたので(笑
前回のリニューアルの記事(ブログのデザインをリニューアルしました)の日付が2011年11月12日だったので、約3年8ヶ月ぶりのリニューアルとなります。
レスポンシブデザイン
これまでは、当時の PowerCMS のデフォルトテンプレートをベースに DynamicMTML を使ってユーザーエージェントごとに振り分けていましたが、今回は、デザインは前回のものを踏襲しつつ、Bootstrap をベースにしてレスポンシブデザインにしました。
テンプレートの構造
テンプレートの構造としては、最近の僕の中の流行りというかベストプラクティスというか、設定用の変数をまとめた config モジュールを使ったり、モジュールをまとめたフレームワーク的なモジュールを使ったり、といった構造になっています。
例えば、ブログ記事のテンプレートはこんな感じです。
==================================================
Template Name : entry_archive
Template Type : entry_archive / blog
Current Site : Web屋かたつむりくん > かたつむりくんのWWW
Required Vars :
Template Note :
==================================================
==================================================
SimilarEntries [start]
=================================================
関連記事 - SimilarEntries プラグインで表示
function(i, text, odd, even){
return '
SimilarEntries [ end ]
==================================================
ZenBack [start]
=================================================
(略)
ZenBack [ end ]
この中の最後でインクルードしている fw-default モジュールは下記のような感じ。
==================================================
Template Name : fw-default
Template Type : module / blog
Current Site : Web屋かたつむりくん > かたつむりくんのWWW
Required Vars : blog_main
Template Note : 構造は index.html と同じ。このテンプレートの構造を変更
した場合は「index.html」の構造も合わせて変更すること。
==================================================
使い回す変数は JSON で管理
ちょっと実験的な試みではありますが、使い回す情報をまとめた config モジュールには、JSONを書いて、それをデコードして使ったりしています。
==================================================
Template Name : mdl-config
Template Type : module / blog
Current Site : Web屋かたつむりくん > かたつむりくんのWWW
Required Vars :
Template Note :
==================================================
==================================================
Default Settings [start]
=================================================
{
"meta_title": "",
"meta": {
"keywords": "",
"description": "",
"viewport": "width=device-width, initial-scale=1.0"
},
"meta_og": {
"title": "",
"url": "",
"description": "",
"image": "assets/img/profile/w3w_og.png",
"type": "blog"
},
"meta_fb": {
"app_id": "",
"admins": ""
},
"meta_twitter": {
"card": "summary",
"site": "@tinybeans",
"creator": "@tinybeans"
},
"body_class": "blog",
"css": {
"0100": "assets/fancybox/jquery.fancybox.css?v=2.1.5",
"0200": "//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css",
"0*00": "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css",
"0*00": "https://maxcdn.bootstrapcdn.com/bootswatch/3.3.5/simplex/bootstrap.min.css",
"0300": "https://maxcdn.bootstrapcdn.com/bootswatch/3.3.5/yeti/bootstrap.min.css",
"0400": "assets/css/main.css?v="
},
"js_header": {},
"js_footer": {
"0100": "https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js",
"0200": "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js",
"0300": "assets/fancybox/jquery.fancybox.pack.js?v=2.1.5",
"0400": "assets/js/main.js?v=",
"0500": "https://google-code-prettify.googlecode.com/svn/loader/run_prettify.js?lang=css&skin=sunburst"
}
}
Default Settings [ end ]
MTSetVar でハッシュや配列にすればいい話ですが、なんとなくこの方が見やすいかな、と思いました。
この段階では JSON を一旦デコードしてハッシュなどにしていますが、このリニューアル後に MTGetJSONValue というタグで、
のようにドットシンタックスで直接 JSON の値をとれるプラグインを作った(MTAppjQuery に入れると思います)ので、その辺を使ってもっとシンプルに書きなおしていこうと思います。
MTAppJSONTable を活用
また、ブログ設定ページに、テキスト(複数行)カスタムフィールドを作り、そこに MTAppjQuery の機能の一つである MTAppJSONTable を使っていくつかの情報を書いたりもしています。ここは必要に応じて増やしていく予定です。

詳細は後ほど
まだテンプレートの完成度は粗い感じなので(検索もないし・・・)、flexibleSearch.js を導入したりして、今後徐々に仕上げていこうと思います・・・
また、ここではざっと説明しただけですが、Movable Type のテンプレートを書く際の参考になるかもしれませんので、後日、もう少し詳しいことを書いていこうかなと思います。