BODY用スキンとITEM用スキン
rNoteで用いるスキンファイルは、大きく2種類に大別されます。

一つは、ページ全体用のスキンです。以下これを「BODY用スキン」と呼称する事にします。ディフォルトのファイル名は「html_body.skin」です。
もう一つは、エントリアイテム用のスキンです。以下これを「ITEM用スキン」と呼称します。ディフォルトのファイル名は「html_item.skin」です。
(ディフォルトのファイル名は初期設定で変更可能です)
つまり、BODY用スキンの途中に、複数のITEM用スキンが挿入されて、1ページが出来上がります。
以下は、非常にシンプルなBODY用スキンの例です。
<html>
<body>
<h1>俺ページ</h1>
<%=$site_items%>
</body>
</html>
<%=$site_items%> の部分に、ITEM用スキンが挿入されます。
ITEM用スキンは以下のような形になります。
<h2><%=$Title%></h2>
<%=$Text%>
<%=$Title%> の部分に記事のタイトルが、<%=$Text%> の部分に記事の本文が入ります。
なお、スキン中に日本語を記述する場合、そのスキンファイルは、初期設定の「SITE_CHARSET」で設定された文字コードで保存されている必要があります。標準は UTF-8 です。
UTF-8の場合は、必ず「BOMなし」で保存してください。
配布アーカイブのスキン構成
配布アーカイブのスキンは以下のような構成になっています。
| ファイル又はディレクトリ名 | 説明 |
html_body.skin
html_head.skin
html_side.skin
| この3つでBODY用スキンを構成しています。 |
html_item.skin
writeback.skin
| この2つがITEM用スキンとなります。writeback.skin の方はツッコミ部分用です。 |
| html_recent.skin | サイドバーの Recent Entries 表示用のスキンです。 |
| error.skin | エラー表示用のスキンです。 |
rss_body.skin
rss_item.skin
rss_seq.skin
| RSS用のスキンです。 |
html_body_i.skin
html_item_i.skin
error_i.skin
| 携帯表示用のスキンです。 |
カテゴリとスキン
rNoteは「ディレクトリ=カテゴリ」方式を採用しています。
「diary」というカテゴリを作りたい場合は、entriesの中に「diary」というサブディレクトリを作成し、この中に記事ファイルを置きます。
さて、先ほど「BODY用スキンにITEM用スキンが挿入されてページが作成される」と説明しましたが、rNoteでは、カテゴリによって使用するスキンを分ける事が可能です。
方法は、例えば gallary 専用スキンを作成した場合は、それを gallery フォルダに置くだけです。
[/]--+--rnote.php
+--rnote_config.php
+--[entries]--+--[diary]----+--diary040101.xml
|
+--[info]-----+--html_item.skin (2)
| +--info01.xml
|
+--[midi]-----+--html_body.skin (3)
| +--midi01.xml
|
+--[gallery]--+--html_body.skin (4)
| +--html_item.skin (4)
| +--cg001.xml
|
+--html_body.skin (1)
+--html_item.skin (1)
例えば、上記のような構成でファイルが置かれていたとします。
[diary] ディレクトリには、BODY用スキンもITEM用スキンも存在しませんので、entries直下のスキン (1) が使用されます。
[info] ディレクトリには、ITEM用スキンが存在するので、info01.xml を表示する際は、(1) ではなく、(2) のhtml_item.skin が使用されます。
Home でアクセスし diary040101.xml と info01.xml が同時に表示された場合は、両者はそれぞれのITEM用スキンによって表示が行われます。
BODY用スキンは、現在のカレントカテゴリによって、どのスキンが使用されるかが決定します。
現在のカテゴリが Home の時は (1) の html_body.skin が使用されます。又、[info] カテゴリに入った時も、ここには html_body.skin が存在しませんので、やはり (1) の html_body.skin が使用されます。
[midi] カテゴリに入った時は、専用の html_body.skin が存在する為、この (3) の html_body.skin が使用されます。
Homeでアクセスした場合、違うカテゴリの記事が同時に表示される場合があります。
その為、あるカテゴリでは他と全くデザインを変えているという場合、同時に表示されると不都合が生じる可能性があります。このような場合、特定のカテゴリはHomeで表示しない設定にするか、又は、そもそも通常のBlogのようにHomeで新着記事を出すのを止め、トップページは各カテゴリへのメニューだけにする…等の対処を行ってください。
標準以外のITEM用スキンを使う
<%=$site_items%> 置換命令において、オプション skin を設定する事により、前項で説明したディレクトリ依存以外のスキンを強制的に使用することが出来ます。
例として、サイドバーに最新の日記10個のタイトルを表示させることにしましょう。
まず、以下のような内容のファイルを作成し、これを html_recent.skin というファイル名で保存します。
<li><%=$Title%></li>
次に、html_body.skin の適当な場所に、以下のような記述を追加します。
<h4>Recent Entries</h4>
<ul>
<%=$site_items num="10" skin="html_recent.skin" url="diary/" %>
</ul>
これで、サイドバーに最新の日記10個のタイトルが表示されるようになります。
全カテゴリの最新の記事のタイトルを表示したいという場合は、上記記述のurlオプションを url="/" に変更してください。
urlオプションが無い場合は、対象が現在のカテゴリになります。もし url オプションを書き忘れますと、diary カテゴリに入ったら diary の最新記事10件が、gallery カテゴリに移動したら gallery の最新記事10件が表示されてしまいます。
なお、<%=$site_items%> 命令についての詳細は、「スキンの詳細」の項をお読み下さい。
標準以外のBODY用スキンを使う
サイト内リンクを生成する <%=$site_link%> 命令というのがあります。
この命令に skin オプションを指定する事で、ディレクトリ依存した標準スキン以外のスキンを使用する事が出来ます。
例えば、日記タイトル一覧を表示する diary_title.skin というスキンを作成した場合、以下のようにリンクを作成します。
<a href="<%=$site_link url="diary/" skin="diary_title" %>">
日記タイトル一覧
</a>
携帯表示用スキン
携帯表示時は、あるカテゴリ専用としてそのディレクトリに html_body_i.skin を置いて…という方法は使用出来ません。常に entries 直下の携帯用スキンが使用されます。
従って、携帯でカテゴリによって表示や処理を変更したいという場合は、<if category=... マクロを使用して処理を分岐させてください。
なお、もし「ウチのサイトはあまり携帯からは見て欲しくないんだけどー」という場合は、html_body_i.skin を以下のようにでも書き換えてください。
<html><body>
<h1><%=$site_title%></h1>
<center>(c)<%=$site_author%></center>
<hr>
当サイトは携帯からの閲覧には対応してません。パソコンでご覧になってください。
</body></html>
エラー用スキン
エラー表示に際しては、初期設定で指定されたエラー用のスキンが使用されます。