blosxom にデフォルトで用意されている RSS 出力機能は、あまり美しくない RSS を出力してしまうので、なるべくなら rss10 プラグインを使用した方が良い気がします。ただ、 flavour のサンプルが同梱されていないので、設定に戸惑うかもしれません。そこで rss10 プラグインで利用する flavour をここに載せておこうと思います。
補助として foreshortened プラグインも必要です。
flavour は content_type, head, date, story, foot の5つを用意してやる必要があります。flavour 名は任意でよいのですが、一応わかりやすいように rss10 または rdf, xml が良いと思います。rss にすればデフォルトの RSS 出力を上書きできるので、これもオススメ。
content_type.rss10
Content-Type:application/xml; charset=UTF-8
charset に続くのは文字コードの指定で、利用している文字コードによって変わります。
head.rss10
<?xml version="1.0" encoding="utf-8"?>
<rdf:RDF
xmlns="http://purl.org/rss/1.0/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:admin="http://webns.net/mvcb/"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xml:lang="$blog_language">
<channel rdf:about="$url/index.rss10">
<title>$blog_title</title>
<link>$url</link>
<description>$blog_description</description>
<dc:creator>$rss10::creator (mailto:$rss10::email)</dc:creator>
<admin:generatorAgent rdf:resource="$rss10::generatorAgent"/>
<admin:errorReportsTo rdf:resource="mailto:$rss10::email"/>
{{{items}}}
</channel>
rss10 の方の設定さえすれば、特に書き換えるところはないと思います。channel の rdf:about の値は RSS の URL なので(HTML のURL でも良いみたいですが)利用するflavour名で終わるようにしましょう。{{{items}}} は、最後に items 要素に置き換えるための文字列で消してはいけません。
date.rss10
空で構いません。
story.rss10
<item rdf:about="$url$path/$fn.$default_flavour">
<title>$title</title>
<link>$url$path/$fn.$default_flavour</link>
<description>$foreshortened::body</description>
<dc:subject>$path</dc:subject>
<dc:creator>$rss10::creator (mailto:$rss10::email)</dc:creator>
<dc:date>$yr-$mo_num-$da$rss10::T$ti+9:00</dc:date>
<content:encoded><![CDATA[$rss10::body]]></content:encoded>
</item>
ここでは Parmalink はエントリ・ベースの URL にしていますが、$url/$yr/$mo_num/$da#$fn などの日付けベースのものに差し替えても構いません。dc:subject と dc:creator はそれほど有意義ではないので、いらないなと思ったら行ごと削除しても良いでしょう。dc:date の最後の +9:00 は時差を示すもので、大概の場合はこのままで構いませんが、設置サーバーが日本国外の方はそれに合わせて変更する必要があるかもしれません。
foot.rss10
</rdf:RDF>
これだけで OK です。
以上をそれぞれファイル化してやって、flavour を置くディレクトリに置いてやり、http://your.server/path/to/blosxom.cgi/index.rss10 にアクセスすればRSS 1.0が得られます。
Unknown Place で MT っぽくエントリーごとのコメント, Trackback をリスト表示するプラグインが公開されています。
MTっぽい最近のコメント/トラックバックを表示できるrecentwritebacks_treeプラグイン、作ってみました。
$recentwritebacks_tree::cm_listでコメントを、tb_listでトラックバックを表示します。エントリー数と表示コメント(トラックバック)数は$cm_numとかなんかその辺の変数で指定します。ちなみに日付はwritebackプラグインを改造してwbファイルにdate:セクションを追加してないとでません。まだ作りかけなんだけど、もしかしたら参考にはなるかもしれないので一応。
# Should I statically generate individual entries? # 0 = no, 1 = yes $static_entries = 0;2. Apache のコンフィグディレクティブで、静的ファイルが見つからない場合は動的に実行するように設定する。(i.e. インデクスページ以外) 以下の設定をドキュメントルートの .htaccess ファイルに指定する。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ blosxom.cgi/$1 [L,QSA]
(もちろん blosxom.cgi のはフルパスで記述する必要がある。 (e.g. cgi-bin にある場合は /cgi-bin/blosxom.cgi)
3. writeback を foot.html テンプレートに設置する
4. writeback は個別ページに POST するようになっているか確認する (e.g. /cooking/vegetarian/risotto.html):
<form method="POST">(i.e. action= をブランクにするか、 form から除去しておく) ポストすると、個別ページを動的に呼び出すことになる。(e.g. /cooking/vegetarian/risotto.html は実際には blosxom.cgi/cooking/vegetarian/risotto.html が起動される)。
■SVG出力実験
表示にはAdobeのSVGプラグインとか必要。いまんところ全く実用性ないけど(笑)。とりあえず可能性を探る実験。
chrome さんの C.G.I::blosxom で SVG (Scalable Vector Graphics) 出力実験をされています。SVG は XML なので、こうしたことが楽にできますね。面白いです。
だれか pdf フレーバとかつくってくれないかなとおもう今日この頃です。PDFJ とか使えばできそうですね。
あると良いかもしれないというか、素だとちと寂しすぎるのでとりあえず入れとけみたいなプラグインを簡単な説明と共に列記します。
なにはともあれblosxomの初期設定についての説明は必要そうなのでざっと説明してみます。設定の変数名とそれが意味するところのセットで解説してみました。随時更新(予定)。
Movable Type互換のflavourを作成しました。互換とは、Movable Type用のCSSファイルがそのまま使えるということです。
サンプルはこんな感じです。
とりあえずは本文その他のコアな部分のみの対応です。必要なプラグインは
categories
archives
です。検索窓はGoogleのinurl検索をラップしたCGIでの実装ですので、flavourにそのまんまコードを書いています。findとかにも入れ替えることは可能だと思いますので、そこらへんはご自分でどうぞ。
writebackプラグインをかなり拡張すると、Comment部分やTrackBack部分の表示も互換にできると思います(できることは確認しました)が、かなりややこしいので省略。
flavourとCSSファイルをまとめたZIPファイルをダウンロード
利用の際には、content_type.mtとhead.mtで指定している文字コードやCSSファイルのパスをを自分の利用環境に合わせることが必要です。デフォルトでこのflavourを利用したい場合は拡張子をhtmlに変更しましょう。
blosxom ML:5394 からの情報ですが、flavour 無しの URL でエントリにアクセスできる CoolURI plugin の Version 0.2 が公開されました。
「$datadir/path/to/entry.txt」というファイルを作成すれば、「blosxom.cgi/YYYY/MM/DD/entry」や「blosxom.cgi/path/to/entry」でアクセスできるようになります。但し、現在は動的生成にしか対応していません。
その URL でアクセスできる flavour も設定できるので、それなりに便利かも知れません。
blosxom.org の運用を開始しました。
blosxom に関する日本語リソースの集積所にしていく予定です。とりあえずこの blog では、本家ML のサマリや、Tips 等をポストしていこうとおもいます。