November 29, 2003

blosxom.com is down

執筆現在、blosxom.com がダウンしています。DNS に問題があるようで、blosxom.dyndns.org でアクセスが可能なようです。

Posted by miyagawa at 03:57 AM | Comments (5) | TrackBack

November 28, 2003

rss10 プラグイン

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 の方の設定さえすれば、特に書き換えるところはないと思います。channelrdf: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:subjectdc:creator はそれほど有意義ではないので、いらないなと思ったら行ごと削除しても良いでしょう。dc:date の最後の +9:00 は時差を示すもので、大概の場合はこのままで構いませんが、設置サーバーが日本国外の方はそれに合わせて変更する必要があるかもしれません。

foot.rss10

</rdf:RDF>

これだけで OK です。

以上をそれぞれファイル化してやって、flavour を置くディレクトリに置いてやり、http://your.server/path/to/blosxom.cgi/index.rss10 にアクセスすればRSS 1.0が得られます。

Posted by kyo at 08:02 PM | Comments (5) | TrackBack

recentwritebacks_treeプラグイン

Unknown Place で MT っぽくエントリーごとのコメント, Trackback をリスト表示するプラグインが公開されています。

UnknownPlace.

MTっぽい最近のコメント/トラックバックを表示できるrecentwritebacks_treeプラグイン、作ってみました。
$recentwritebacks_tree::cm_listでコメントを、tb_listでトラックバックを表示します。エントリー数と表示コメント(トラックバック)数は$cm_numとかなんかその辺の変数で指定します。ちなみに日付はwritebackプラグインを改造してwbファイルにdate:セクションを追加してないとでません。まだ作りかけなんだけど、もしかしたら参考にはなるかもしれないので一応。

Posted by miyagawa at 01:54 PM | Comments (1) | TrackBack

November 26, 2003

static mode と dynamic mode の併用

本家 ML より、blosxom の static mode と dynamic mode を併用する Tips。インデックスページのみを static に出力し、個別記事を動的に生成します。

1. blosxom.cgi が index ページのみ生成するようにする。つまり:

# 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 が起動される)。

Posted by miyagawa at 07:37 PM | Comments (2) | TrackBack

November 18, 2003

SVG Flavour

C.G.I.::blosxom

■SVG出力実験
表示にはAdobeのSVGプラグインとか必要。いまんところ全く実用性ないけど(笑)。とりあえず可能性を探る実験。

chrome さんの C.G.I::blosxom で SVG (Scalable Vector Graphics) 出力実験をされています。SVG は XML なので、こうしたことが楽にできますね。面白いです。

だれか pdf フレーバとかつくってくれないかなとおもう今日この頃です。PDFJ とか使えばできそうですね。

Posted by miyagawa at 07:01 PM | Comments (1) | TrackBack

November 16, 2003

とりあえず入れとけなプラグイン

あると良いかもしれないというか、素だとちと寂しすぎるのでとりあえず入れとけみたいなプラグインを簡単な説明と共に列記します。

archives
年ごと・月ごとのページへのリンクのツリー・メニューを作成するプラグインです。flavourの表示させたい所に$archives::archivesと記述して使用します。
categories
カテゴリ別のページへのリンクのツリー・メニューを作成するプラグインです。flavourの表示させたい所に$categories::categoriesと記述して使用します。
storytitle
エントリごとのページで、そのエントリのタイトルを抜き出すプラグインです。HTMLのtitle要素に流し込んでSEOとかな使い方が主になると思います。flavourの表示させたい所に$storytitle::page_titleと記述して使用します。
entries_index
エントリの作成日時を保持するプラグインです。これを利用すると、エントリの修正を行ってもエントリの日時が変わることがなくなります。特にflavourをいじる必要はありません。
writeback
コメントを投稿する機能とTrackBackを受信する機能を提供するプラグインです。TrackBackを送信する機能はありません。設定が煩雑なのとかなり足りない機能があるので、その補完と共に説明を改めて行うことになると思います。
rss10
RSS 1.0を生成するプラグインです。flavourを作成する必要がありますが、公式サイトでは配布されていないので、ミラーからダウンロードしてこれを書き換えて使いましょう。
Posted by kyo at 02:36 AM | Comments (4) | TrackBack

November 14, 2003

blosxom初期設定

なにはともあれblosxomの初期設定についての説明は必要そうなのでざっと説明してみます。設定の変数名とそれが意味するところのセットで解説してみました。随時更新(予定)。

blosxom本体周りの設定

$blog_title
タイトル。 HTML の title 要素に使ったり、 RSS の channel 要素の title 要素に使ったり。
$blog_description
要約。 RSS の channel 要素の description 要素に使ったり。
$blog_language
言語。 RSS の各要素の xml:lang 属性に使ったり。
$url
blosxom の URL 。通常は空で構わないかと。うまく動かない場合は blosxom の URL を http から書く。
$datadir
エントリを置くディレクトリ。フレーバーを置くディレクトリにもなる。基本的には、サーバーのルートからの絶対パスで指定。相対パスでも動いたり、相対パスじゃないと動かなかったりする(らしい)ので、要試行錯誤。
$depth
$datadirからエントリを辿る階層。無限に辿る場合は 0 。 $datadir のみの場合は 1 。サブディレクトリまで辿る場合は 2 。通常は 0 で構わないかと。
$num_entries
一ページに表示するエントリの数。カテゴリごとに表示する場合にも適用される。年・月・日ごとの場合は適用されない(すべて表示されます)。
$file_extension
エントリとみなすファイルの拡張子。通常は txt で構わないかと。サーバー側で特殊とみなしてしまう拡張子( cgi とか)は避けた方が無難。
$default_flavour
標準に使用するフレーバー。標準に使用するとは、フレーバーを賞楽して閲覧した場合に使われるということです。通常は html で構わないかと。

プラグイン周りの設定

$show_future_entries
未来の日付けのエントリを表示するかどうか。 0 で表示しない、 1 で表示するようになります。好みで。
$plugin_dir
プラグインを置くディレクトリのパス。基本的には、 $datadir と同じくサーバーのルートからの絶対パスで指定。要試行錯誤。
$plugin_state_dir
プラグインの設定やログなどを保存するためのディレクトリのパス。無指定でも動く(はず)。基本的には、 $datadir と同じくサーバーのルートからの絶対パスで指定。要試行錯誤。

静的生成周りの設定

$static_dir
静的生成での出力ファイルを保存するディレクトリ。基本的には、 $datadir と同じくサーバーのルートからの絶対パスで指定。要試行錯誤。
$static_password
静的生成を行う時のパスワード。静的生成には、これを設定して、コマンド プロンプトなどから指定してやる必要があります。
@static_flavours
静的生成時に出力するフレーバー。半角スペースで区切っていくらでも指定可能。通常は qw(html rss) で構わないかと。
$static_entries
静的生成時に個々のエントリを出力するかどうか。 1 ですべて出力されるようになります。 0 の場合は、ルートのページと各カテゴリの最初のページ、月単位のページだけが出力されます。
Posted by kyo at 11:32 PM | Comments (1) | TrackBack

Movable Type互換flavour

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に変更しましょう。

Posted by kyo at 08:03 PM | Comments (6) | TrackBack

November 13, 2003

CoolURI Version 0.2 Released

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 も設定できるので、それなりに便利かも知れません。

Posted by iwaim at 12:06 AM | Comments (4) | TrackBack

November 12, 2003

blosxom.org

blosxom.org の運用を開始しました。

blosxom に関する日本語リソースの集積所にしていく予定です。とりあえずこの blog では、本家ML のサマリや、Tips 等をポストしていこうとおもいます。

Posted by miyagawa at 11:05 PM | Comments (1) | TrackBack