AboutFlavour

blosxomのフレーバー(テンプレート・システム)についてのページです。

フレーバーとはテンプレート・システムのことです。blosxomの場合はHTMLに限らず、RSSなどもフレーバーを利用して出力します。ここでは主にHTMLのフレーバーを作ることを念頭において説明します。

フレーバーの種類

あるひとつのフレーバーを完成させるためには、

以上、5つのフレーバーを$datadirに作成する必要があります。".flavour"とした部分がフレーバーの名前になります。つまり、htmlというフレーバーを作成するためには$datadirに、

を用意してやるということになります。".flavour"の部分はそのままURLに出て来るので、なるべくなら小文字の方が良いと思います。

content_type.flavour

出力の際に送信するContent-Typeヘッダのためのフレーバーです。HTMLの場合は、

text/html; charset=UTF-8

などで、RSSの場合は、

application/xml; charset=UTF-8

などとなります。blosxomが内部で使用しているPerlのCGIモジュールの仕様により、charsetを明示しないとISO-8859-1になってしまうので、忘れずにcharsetも含めて記述しましょう。

head.flavour

エントリの日付けやエントリ本文(の繰り返し)が始まる前までの部分のためのフレーバーです。HTMLの場合、ここでHTMLのhead要素やサイトのタイトルなどを記述するフレーバーということになります。

date.flavour

日付け(と時刻)が変わった時に日付け(と時刻)を挿入するためのフレーバーです。このフレーバーはちょっと特殊で、必ずしも日付けが変わった時だけに使われるというわけではなく、date.flavournameで生成される出力が変化した時に使われます。つまり、

$yr/$mo_num_$da $ti

と、date.flavourに記述した場合は、エントリの時刻が変わる度(大抵はエントリごと)に使われることになるということです。

story.flavour

各エントリのためのフレーバーです。トップ・ページやカテゴリごとのページでは、$num_entriesで設定した回数だけ繰り返されることになります。

foot.flavour

各エントリの出力以降のためのフレーバーです。HTMLの場合、body要素やhtml要素の終了タグやを記述するフレーバーということになります。

フレーバー変数

content_type.flavour以外のフレーバーでは変数を利用してポータビリティの高いフレーバーを作成することが出来ます。

変数には、

以上の三種類があります。

グローバル変数

グローバル変数はどのフレーバーでも使えます。

$blog_title

設定で指定したblogのタイトルにする文字列に置き換わります。

$blog_description

設定で指定したのblogの説明に当たる文字列に置き換わります。

$blog_language

設定で指定したのblogで使用する言語を示すコードに置き換わります。

$url

設定で指定した実際に設置するURLに置き換わります。

$path_info

blosxomに渡されたパスや年月などの引数に置き換わります。

$flavour

表示に使用しているフレーバー名に置き換わります。

あるフレーバーでしか利用できない変数

いくつかの変数は特定のフレーバーでしか利用できません。

$yr

各エントリの日時の年(2004など4桁の数字)に置き換わります。date.flavourとstory.flavourのみで利用できます。

$mo

各エントリの日時の月(Jan, Feb, Marなど英語3文字の文字列)に置き換わります。date.flavourとstory.flavourのみで利用できます。

$mo_num

各エントリの日時の月(01~12の2桁の数字)に置き換わります。date.flavourとstory.flavourのみで利用できます。

$da

各エントリの日時の日(01~31の2桁の数字)に置き換わります。date.flavourとstory.flavourのみで利用できます。

$dw

各エントリの日時の曜日(Sun, Mon, Tueなど英語3文字の文字列)に置き換わります。date.flavourとstory.flavourのみで利用できます。

$hr

各エントリの日時の24時間表示の時(00~23の2桁の数字)に置き換わります。date.flavourとstory.flavourのみで利用できます。

$min

各エントリの日時の分(00~59の2桁の数字)に置き換わります。date.flavourとstory.flavourのみで利用できます。

$hr12

各エントリの日時の12時間表示の時(00~11の2桁の数字)に置き換わります。date.flavourとstory.flavourのみで利用できます。

$ampm

各エントリの日時の午前・午後を示すamまたはpmという文字列に置き換わります。date.flavourとstory.flavourのみで利用できます。

$ti

各エントリの日時の24時間表示の時と分の組み合わせ($hr:$minと同じになる)に置き換わります。date.flavourとstory.flavourのみで利用できます。

$title

各エントリのタイトルに置き換わります。story.flavourのみで利用できます。

$body

各エントリの本文に置き換わります。story.flavourのみで利用できます。

$path

各エントリのパスに置き換わります。story.flavourのみで利用できます。

$fn

各エントリの拡張子を除いたファイル名に置き換わります。story.flavourのみで利用できます。

プラグインにより生成される変数

fooという名前のプラグインのbarという変数は、

$foo::bar

というように参照するということになります。Perlに慣れている人にはなんでもないことなのだが、そうでない人にはわかりにくいかもしれません。

プラグインによっては、ドキュメントが不備でわかりづらいことも多いですが、きっとなんとかなります。もしかしたらPluginListに誰かが説明を書いておいてくれたりするかもしれません。

Last-Modified: 2006-11-21T18:34:30+09:00