フレーバー(Flavour

フレーバー

Blosxomは2つのフレーバーを予め提供しています。基本のデフォルト HTMLXMLベースのシンジケートのためのRSSです。

私はまた、Blosxom Flavour Sampler(フレーバーのサンプル)を作成しました。幾つかのフレーバーテンプレートで構成されたものです(じきにお話します)。

標準のHTMLは簡単に変更できます。earth-shatteringlyな穏やかな白い背景に大きな文字の題名。記事は機能的ですがやはり少し穏やかな感じです:

Typical Post
Your typical Blosxom post consists of a required title
on the first line and any manner of text and HTML
markup in the body.

posted at: 11:33 | path: / | permanent link to this entry

ありがたいことに、再構成するのは非常に単純です。覚えることは2つしかありません:テンプレートコンポーネントとテンプレートファイルです。

テンプレートコンポーネント...

テンプレートコンポーネントはBlosxomで動的に作成されるコンテンツの要素です。$blog_titleは、例えば、設定でセットするウェブログのタイトルを入れておくところです。フレーバーテンプレートのどこでも、それが現われると動的に設定した値に置き換わって表示されます。

テンプレートコンポーネントは2つの種類があります:グローバルとストーリーです。

...グローバルテンプレートコンポーネント

グローバルコンポーネントはテンプレートファイルのどこでも使用できます。いくつかはBlosxom設定でセットし、他は動的に生成されます。

$blog_title

ウェブログのタイトルで、Blosxomの設定で指定します。
My Blosxom Blog

$blog_description

ウェブログの説明で、Blosxomの設定で指定します。
A blog about this and that.

$blog_language

言語コードで、Blosxomの設定で指定します。
en-us

$url

ウェブログのURLBlosxomで自動判別されますが、Blosxomの設定で指定もできます。
http://www.example.com/cgi-bin/blosxom.cgi

$path_info

最初の閲覧記事を指定します。パス、日付、それらの組み合わせで指定します。
/society/television/retro/1977/

$flavour

使用するフレーバー。
http://www.excampe.com/cgi-bin/blosxom.cgi/index.someflavour

...ストーリーテンプレートコンポーネント

ストーリーコンポーネントは記事(ログ)によって変化します。

$title

記事のタイトル。
Typical Post

$body

記事の本文 --ファイルの最初の行以外の全部。
Your typical ... in the body.

$url

ウェブログのURLBlosxomで自動判別されますが、Blosxomの設定で指定もできます。これは実際はグローバルテンプレートコンポーネントですが、記事へのpermalinkを作成するのに便利なのでここでも紹介しました。
http://www.example.com/cgi-bin/blosxom.cgi

$path

今いるウェブログのディレクトリ/フォルダ階層の中のパス
travel/india

$yr, $mo, $mo_num, $da, $hr, $min

記事が書かれた日付/時間。左から、年、月 (Jan-Dec)、月 (01-12)、日 (01-31)、時 (00-23)、分 (00-59)。
2002, "Dec", 12, 01, 11, 33

$fn

記事のファイル名。拡張子(.txt)は省略します。
typical_post

サンプルのHTMLフレーバーに行くと、進むにつれて大小いろいろなことが紹介されます。これらのファイルはまだありません。デフォルトのHTMLはビルトインです(blosxom.cgi自体に書かれています)。新しいHTMLを作るとこのデフォルトバージョンの代わりに使われます。

テンプレートファイル...

Blosxomのテンプレートは次のもので構成されています。

head (記事の前)、foot (記事の後)、story (記事ごとの書式)、content_type (特定のフレーバーのコンテンツタイプ)、date(タイムスタンプの見た目を操作。オプション)。

これらは次の名前を持つファイルとして存在します:headfootstorycontent_typedate

しかしBlosxomでは1つ以上のフレーバーが使えるので何らかの方法で表現しなくてはなりません。HTMLフレーバーに関しては次のようにします:
head.html, foot.html, story.html, content_type.html, date.html

簡単でしょう?

...ヘッダ

ヘッダは記事の前に全て表示されます。HTMLフレーバーに対するヘッダはデータディレクトリ内のhead.htmlと言うファイルになります。

head.htmlのサンプルです:

<html>
<head>
 <title>$blog_title</title>
</head>
<body bgcolor="#ffffcc">
<b>$blog_title</b>
<hr size="1" noshade />
<p />

好きなテキストエディタでこのHTMLをコピー&ペーストしてdatadir/head.htmlにテキストファイルとして保存して下さい。datadirBlosxomデータディレクトリです。

$blog_titleって何? グローバルテンプレートコンポーネントの一つで、このページのずっと上で説明しています。

...フッタ

ヘッダが記事の前に出現するのとは対照的にフッタは記事の後に出現します。HTMLフレーバーに対するフッタはデータディレクトリfoot.htmlと言うファイル名で置きます。

foot.htmlのサンプルです。水平線と"powered by blosxom"ボタンがあります:

<p />
<hr size="1" noshade />
<a href="http://www.blosxom.com/"><img
src="http://www.raelity.org/images/pb_blosxom.gif"
border="0" /></a>
</body>
</html>

テキストエディタでコピー&ペーストし、datadir/foot.htmlにテキストファイルとして保存して下さい。

Blosxomページを再読み込みすると変化に気付くでしょう。

貴方のページに"powered by blosxom"ボタンを付けなくてはならないとはどこにも書かれていませんが、貴方がBlosxomユーザであると言うことを知ってもらい、ウェブログを始めたいと思っている人をBlosxomに導くのにも良い方法です。

...ストーリー

記事の文章の見た目はデータディレクトリstory.htmlと言うテンプレートで決まります。デフォルトのレイアウトをちょっといじてみてストーリーテンプレートコンポーネントを使ってみませんか?

<p>
<a name="$fn"><b>$title</b></a>
<br />
$body
</p>
<p align="right">
<i>[<a href="$url$path">$path</a>]
<a href="$url/$yr/$mo_num/$da#$fn">permanent link</a></i>
</p>

...ストーリー ...permalinks

パーマネントリンク"permalinks"permalinkは記事の一つへの参照の際に使われる、決して変更が無い事が約束された恒久的なURLを提供するものです。ウェブログのホームページの下端から記事が落ちてしまった場合 --思い出して下さい、日付順に表示されます-- permalinkはリンクがばらばらになった時間とテンプレートに逆らう事を保証するものです。

Blosxomの標準のpermalinkは日付を基準にしています(上で示しています)。例えば2003年2月1日にa_story.txtとして保存した記事は
http://www.example.com/cgi-bin/blosxom.cgi/2003/01/01#a_story
として恒久的にリンクされます。これによってその日付の記事として直接ブラウザでその記事を閲覧できます(#a_story)。これを行うにはテンプレートで次のような感じのものを含めるようにします:
<a href="$url/$yr/$mo_num/$da#$fn">permanent link</a>

パスを基準にしたpermalinkを望むかも知れません。datadir/fictiona_story.txtとして保存した記事は
http://www.example.com/cgi-bin/blosxom.cgi/fiction#a_story.txt
としてリンクされます。このタイプのpermalinkはテンプレートで次のような感じにします:
<a href="$url$path/index.$flavour#$fn">permanent link</a>

permalinkで記事ごとに見た目を変えることもできます。これはパス基準のpermalinkを修正します:
<a href="$url$path/$fn.$flavour">permanent link</a>

...content-type

標準のcontent-typeエンコーディング -- Blosxomがブラウザに出力のタイプを知らせるものです-- はプレーンテキストです(text/plain)。異なるエンコーディング(text/xmltext/html等)のテンプレートを作成したいときはエンコーディングを指定するcontent_type.flavourファイル(flavourは貴方の使うフレーバー)を作成しなくてはなりません。

我々の例では(HTMLフレーバー)、content-typetext/htmlでブラウザにはHTMLドキュメントと解釈されます。

テキストエディタで以下をコピー&ペーストしてdatadir/content_type.htmlにテキストファイルとして保存して下さい。

text/html

例えば、"exemel"と言うウェブログに対してXMLフレーバーを作成した時にはcontent-typetext/xmlになります。この場合、次の一行を持つdatadir/content_type.exemelファイルを作成します:

text/xml

...日付

各記事には日付のスタンプがあります。以下は標準の見た目です:

Wednesday, 01 Jan 2003

これが貴方の好みに合うのであればdate.htmlテンプレートファイルの作成は読み飛ばして構いません。そうでなければ次に進んで日付に関するテンプレートコンポーネントを使って変更します:

$yr, $mo, $mo_num, $da, $hr, $min

もしかすると、斜体の数字をHTMLフレーバーで使いたいかも知れません。以下のHTMLをテキストエディタでコピー&ペーストしてdatadir/date.htmlと言うテキストファイルで保存して下さい。

<i>$mo_num/$da/$yr</i>

以下のように表示されます:

01/01/2003

テンプレートファイルをどこに保存するかとかどのテンプレートコンポーネントを自由に組み合わせてとか知っているのはさておき、これでは空は有限である事に違いありません。CSSJavaScriptXML、プレーンテキスト...を使ってガツガツいきましょう。貴方のウェブログです。好きなように作りましょう。

たくさんのフレーバー...

まだわき道に入るわけには行きません。フレーバーに付いて知っておくべきことが他にもちょっとあるのです... たくさんのフレーバー。それは貴方の興味と創造性のみに制限をうけます。 HTMLフレーバーとRSSフレーバーは既に"箱"に入っていますが、head.flavour, foot.flavour, story.flavour, content_type.flavour, date.flavour(オプション)と言うファイルを作ればいろいろなフレーバーを使うことができます。このファイルのflavourは貴方の付けたフレーバー名にします。

古いブラウザのために"西暦1993"フレーバーが欲しい? HTMLフレーバーでやったようにhead.1993, foot.1993, story.1993ファイルをデータディレクトリに作成しましょう。 ウェブログを"タイトルのみ"にするには題名だけを表示するフレーバーを用意する? そうです: head.titles, foot.titles, story.titles

特定のフレーバーで閲覧するにはBlosxomURLの最後でindex.flavourと指定するか?flav=flavourflavourはフレーバー名)と指定します。そのため、例えば1993フレーバーの場合はhttp://localhost/cgi-bin/blosxom.cgi/index.1993http://localhost/cgi-bin/blosxom.cgi/?flav=1993になります。

良いのはindex.flavourです。?flav=flavourは古いバージョンのBlosxomとの互換のために用意されています。