Nucleus:スキンとテンプレートの違いを考える(SkinとTemplate)
Nucleus (35 items)
2004年07月20日
「Heartfield Blog」さんで、NucleusやMT(MovableType)の比較をされてました。
ちょっと事情がありまして、Nucleusをいじくり回しています。
結論的にはMTが一番だという事だそうです。
私はあまりMTを使った事が無いので判断はし兼ねますが、
Nucleusもいいですよとは言いたいです。
そこでNucleus、特に最初つまづき気味になる、
”スキン”と”テンプレート”の違いについて考えてみたいと思います。
その前に、少しMTとNucleusの違いで思う事。
「Heartfield Blog」さん等でも言われてますが、
Nucleusはどうも素人(ソフトウェア業界人以外)には取っ付きにくい印象があるようです。
んー・・、わからないでもないですが、そう思わせている原因の一つが
「何で”スキン”・”テンプレート”の2つがあんの?」という事なんでしょうか。
後、MTは記事投稿後に再構築という事で毎回HTMLを生成し、
Nucleusは再構築せず、HTMLを動的に出力しているという違いがありますが、
逆に業界人から言わせると、この再構築に違和感がありました。
我々は、JavaやASPでサイト構築してきた経験がありますが、それらも全て動的にHTMLを出力する形で作っています。
MTでは、再構築という形で毎回静的なHTMLを生成し、それらを表示していると知って、
そういうやり方もあるのかと感心しました。(慣れていない時は再構築を忘れてしまいます)
さて、”スキン”と”テンプレート”の違いについて”。
こちらのスキンとテンプレートにも書いてありますが、
”スキン”とはページのレイアウトを定義するもので、
”テンプレート”とは、どのようなレイアウトでweblogの内容を展開するかを定義するものとなっています。
言葉にすればこのままで、
当サイトで言えば、ページ全体が”スキン”で定義され、
各記事の内容、続きを読む・Comment・TrackBackのリンクなどは”テンプレート”で定義されています。
ここで、「なぜ2つに分かれているの?」ではなく、
「構造化されているので2つに分けてある」と考えていった方がいいのかもしれません。
下記の表示されるべき最高8つのページについて定義するものです。
1、月別アーカイブページ
2、月別アーカイブ一覧ページ
3、エラーページ
4、画像ポップアップウィンドウ
5、メインの目次ページ
6、個別アイテムページ
7、メンバー詳細ページ
8、検索ページ
これらのページについて、表示される内容をHTMLソースで定義します。
新しく”スキン”を作成する事ができますが、
これら8つのページパターン以外のページは基本的に作成できません。(ここはポイント)
”テンプレート”とは、この”スキン”の中の部分的な定義をするものです。
その部分的な定義とは、
下記最高10個の部分にそれぞれヘッダー・本体・フッターというものを持ったものです。
1、アイテム
2、コメント (ある場合)
3、コメント (無い場合)
4、コメント (最大表示数より多い場合)
5、コメントが多すぎる時
6、アーカイブ一覧
7、カテゴリー一覧
8、日付と時刻
9、画像とメディアのポップアップ
10、検索
Nucleusデフォルトでは、
このテンプレートに”default”、”detailed”があり、それらは主に、
メインページ用のテンプレート=”default”、
個別ページ用のテンプレート=”detailed”のように存在します。
”テンプレート”も同じく新しく作成する事ができ、
定義パターンも上記10個以外には定義できませんが、
”テンプレート”が”スキン”内に”個別で定義するもの”という位置づけなので、
”スキン”と比べて使い方と考え方が少々違ってきます。(ここもポイント)
実例で説明した方がわかりやすいと思いますが、
Nucleusデフォルトで作成したBLOGサイトや、
あまり機能の無いBLOGサイトを作成した場合は、
あまり”スキン”と”テンプレート”の分かれている意味はありません。
元々、Nucleusはシンプルな構造で余分なものは取り除かれています。
逆に言うと、それらはユーザーがテンプレートなどを駆使して定義していくという事になるのです。
例えば、当サイトの”+ H e a d L i n e + (最新記事一覧)”。
これを表示させる機能はスキン変数やテンプレート変数などデフォルトにはありません。
では、プラグインで作成するしかないかという事ですが、この場合はそうではなく、
テンプレートを新たに作成し、それを使用する事で実現できるのです。
私も下記サイトを参考に作成しました。
何かと便利な最新記事一覧(いわゆるRecent Titlesというやつです)。カテゴリやアーカイブ一覧時にも、そのカテゴリの中の最近の分だけタイトルを表示します。やり方は以下のとおり。
つまり、プラグインを作るまでもなく、
テンプレートをうまく使えば、それだけでいろんな機能が作れます。
”テンプレート”がページ上の部分的定義として機能している、
だから”スキン”と”テンプレート”は分かれているわけです。
ソフトウェア業界人向けであれば、「商品明細画面」のような画面があった場合、
画面自体は”スキン”で定義、画面ヘッダー・明細部分・フッターは”テンプレート”で定義となります。
このように分かれている方が、画面の定義や処理なども解りやすく記述しやすく、後々のメンテも楽です。
逆に”スキン”のみだと、そこに全ての定義を盛り込みますので、
スキン自体のボリュームが上がり、その結果・・・、メンテ大変などいろんな弊害が起こるのも想像できますよね。
んーー、うまく説明できないですね。
私もまだまだNucleusを使いこなせている訳ではないので、
結局は個人的な意見なのですが。。。
まあでも、Nucleusは素晴らしいですよ。今後も極めていきたいですねー。
この記事に関連した過去記事一覧は画面下にあります。
Comments
menuet wrote:
はじめまして。NucleusもMTもつかってます。スキンとテンプレートに別れているのには驚きました。初心者の私としてはMTのほうが使いやすいし分かりやすいです。
そういう意味では開発中のblognのほうが優れてますが・・・・
でもNucleusは使い慣れたら素晴らしいWeblogツールだと思っています。
2005年06月09日 12時20分02秒
ossi wrote:
menuetさん初めまして。コメントありがとうございます。
この記事書いて随分経ちますが、今でもNucleusの素晴らしさには感心してます。シンプルな構造がいいんですよね。個人的にはプラグインなんかでゴチャゴチャさせずに、できるだけ基本機能でサイト構築したいなと思ってます。この「スキンとテンプレートに分かれている」構造も、もっとうまく使えないかなとも思いますね。。
2005年06月09日 19時05分45秒
Add Comments
Trackback
Nitram+Nunca - Log wrote:
日記型ブログと MovableType:
MovableType(MT) のときに、このサイトのindexテンプレートの数は20くらいあった。それだけ再構築に時間がかかるし、レイアウトを調整しようとするといくつものテンプレートの同じ箇所を変えなきゃならない。今は...
2004年08月12日 12時42分00秒
Heartfield wrote:
Nucleusを見直す:
今日もNucleusいじりました。昨日よりは大分理解出来ました。スキンとテンプレートの違いをWEB Artisanさんが丁寧に解説してくれていますが、すいません、まだよくわかりません。が、使えるようになりました。使え...
2004年07月21日 02時38分45秒
Trackback URL
http://www.res-system.com/weblog/action.php?action=plugin&name=TrackBack&tb_id=184