blosxom †
blosxom は、バックエンドにデータベースを用意しなくても Weblog サイトを構築できる perl スクリプトです。 ここでは、その blosxom を使用した Ellinikonblue.com Weblog を構築するにあたり、 蓄積されたノウハウをドキュメントとしてまとめてあります。
hail2u.net にて公開されています blosxom starter kit を使って、比較的容易に blosxom サイトを構築・運用することはできますが、機能的でより美しい blosxom サイトを日本語で構築するには、
- HTML/CSS の知識
- スクラッチ・コーディングできないまでも perl に対する若干の知識
- 日本語文字コード関する基礎的な知識
が必要だと思われます。
インストール †
ここで説明する blosxom はバージョン 2.0 としています。本体はblosxom のホームページ からダウンロードしたものを使用します。「 everyone 」向けの zip ファイルをダウンロードしてください。
また、先述したように hail2u.net から blosxom starter kit をダウンロードして使う手もあります。改良された本体の他に、これは入っていた方がいいと思われるプラグインが一式にしてアーカイブされています。また、サーバー上のフルパス*1を知ることができる CGI も同梱されているので、この CGI だけでもホスティングサービスを利用している場合には非常に有用です。
プラグインの導入 †
初期状態の blosxom はアップロードしたテキストファイルを整形して表示する機能しか提供しません。ASP のブログサービスにあるような、エントリのカテゴライズ、カレンダー表示、コメント機能などはすべてプラグインで提供されます。
現在使用中のプラグイン †
Ellinikonblue.com Weblog では、現在、以下のプラグインを利用しています。
- archives
- 特に設定せずともインストールするだけでも、フレーバー ファイル中に $archives::archives という変数を埋め込むことで、エントリを年、月ごとにエントリ数をまとめて階層表示してくれます。
- back_and_forth
- 各個エントリのページに、その前後のエントリへのリンクを挿入することができます。ただし、ごく簡単な専用 フレーバー を作成する必要があります。
- calendar
- エントリへのリンクをカレンダー形式で表示してくれます。こちらも特に設定は必要なく、プラグインのインストールディレクトリにアップロードするだけです。インストールすると、フレーバー ファイル中で $calendar::month_calendar などの変数が使えるようになります。
- categories
- データ保存ディレクトリ以下のディレクトリ名をカテゴリ名として各々エントリ数をまとめてツリー表示してくれます。blosxom のホームページ のプラグインレジストリに登録されているものであれば、プラグインのインストールディレクトリにアップロードするだけで使えるようになります。
- entries_kache
- entries_index プラグイン同様、エントリを最初にアップロードしたときの日時を恒久的に保持するためのプラグインですが、各エントリーの登録日時をキャッシュするため、サーバにかかる負荷は小さくなります。
- foreshortened
- 各エントリ本文を要約した文字列を作成するプラグイン。オリジナルは日本語のブログで使うとほとんど無意味なので、改良して使っています。
- interpolate_fancy
- blosxom.cgi 標準の interpolate() サブルーチンをオーバーライド(上書き)するプラグイン。導入すると、条件によって表示内容を変えるというようなことができるようになります。導入は簡単ですが、使いこなすのは相当難しいプラグインです。
- paging
- http://hail2u.net/archives/blugins.html#paging
hail2u.net で公開されているプラグインで、プラグインのインストールディレクトリにアップロードするだけで、エントリが多くなってくると必要になるページめくりの機能が提供されます。インストール後、フレーバー ファイル中で $paging::navi (ページめくりナビゲーションに置き換えられます)などの変数が使用可能になります。
- rss10
- RSS をフィードする機能は、最初から blosxom にインプリメントされていますが、あまり RSS としては良くないものが生成されるようです。このプラグインは、RSS 1.0 に準拠した RSS ファイルを生成できるようにするためのもので、ファイルの内容の変更のほか、専用のフレーバー を用意する必要があります。
- rwbc
- 最近受け付けたライトバックをリスト表示するためのプラグインです。リストに表示する最近受信したライトバックを RSS 配信することも出来るようになります。
- spam_blocker
- コメント/トラックバック双方に有効なスパム対策プラグインです。writeback 系のプラグインを使用するときは、組み合わせて使用することをおすすめします。
- wikieditsh
- 主にエントリの編集及び新規投稿をウェブブラウザ上から可能にするプラグインです。こちらも専用のフレーバー を用意する必要があります。
オリジナルプラグイン †
- bracket_fep
- ブラケットで囲った文字列を決まった文字列に変換するための汎用プラグイン。このプラグイン専用の bfep(Bracket Front-End Plugin) を追加することで機能を追加していくことができます。snap_in プラグイン や asin_complex プラグイン 相当の bfep をご用意しています。
- jasin
- Amazon.co.jp 向けにローカライズ+ちょっとプログラムを見直した asin プラグイン 。
- Liteback
- writebackplus プラグインなどをベースに開発中の同系のオリジナルプラグインです。
- nofound
- 存在しないページに対して「 404 not found 」を返すためのプラグイン。徒書 製 notfound プラグイン に存在しないインデックスページもはじく機能を付加して作り直してあります。
- snap_in
- autoimgプラグイン を激しくスペックダウンして作った snapimg プラグインに機能強化を施し、画像ファイル以外に、別に用意した HTML ファイルをエントリに取り込めるようにしたプラグインです。
現在は使用していないプラグイン †
- asin_simple/asin_complex
- Amazon.co.jp の アソシエイトプログラム に参加して、個別商品情報を挿入するためのプラグイン。現在は bracket_fep 専用プラグインとして実装している bsnap_asin を使用しています。
- entries_index
- http://www.blosxom.com/plugins/indexing/entries_index.htm
blosxom ではアップロードしたエントリのタイムスタンプは、基となるテキストファイルのタイムスタンプを見て決定されますが、このプラグインを導入することで、最初にファイルがアップロードされたときのタイムスタンプを恒久的に維持します。個人的に改良し、csv 形式のインデックスファイルを出力するようにした entries_csv プラグイン などいう一見意味がありそうで、結局なんの役にも立たなかったプラグインを使用していましたが、現在は entries_kache プラグイン を使用しています。
- writeback
- いわゆるトラックバックとコメントの機能を同時に付加するプラグイン。プラグインのファイルを変更する以外に、別途専用の フレーバー を用意する必要があります。しかし、このプラグインではトラックバック、およびコメントが投稿された時間が記録されないため、一時、上位互換の機能を提供する writebackplus プラグイン へ移行しました。
- writebackplus
- writeback の上位互換機能を提供するプラグイン。本家のものには脆弱性の問題等があるらしく、Nest of Snowy Owls で公開されているものを採用しています。
しかし、このプラグインはもともと EUC で運用することを前提としており、 UTF-8 で運用する Ellinikonblue.com Weblog では文字化けが多発するため、現在はオリジナルで作り込んだ Liteback プラグイン を使用しています。
その他のオリジナルプラグイン
- entries_csv
- 「 entries_index プラグイン改( entries_csvidx プラグイン)」
- 改良版 foreshortened
- 「 foreshortened プラグインを改造してみた」
- snapimg
- 「 snapimg プラグイン」
( Ellinikonblue.com Weblog より)
フレーバーの導入 †
blosxom.cgi は初期設定では日本語の文字コードに対応したページを生成しないため、日本語ページの構成ではフレーバーの導入は必須になります(直接 blosxom.cgi を編集して、日本語の文字コードに対応したページを生成させるという手はありますが、フレーバーを導入した方が、応用が利きそうな気がします)。
フレーバーを作成するのが面倒な方は、以前、Ellinikonblue.com Weblog で使用していたフレーバーを以下で公開しますので、これをそのままもしくは手を入れてご使用ください。
オリジナルのフレーバー作成に興味のある方はこちらへどうぞ。
Ellinikonblue.com オリジナルフレーバー †
ここでは Ellinikonblue.com Weblog で使用していたフレーバーを公開しています。
ここで公開している フレーバー のアーカイブファイルを解凍すると以下の二つのディレクトリができます。
- css/
- 各 フレーバー 用に記述されたスタイルシート群があります。このディレクトリごと 適当なディレクトリにアップロードしてください。
- data/
- フレーバー のファイル群があります。データ保存ディレクトリに中身だけをアップロードしてください。head.* など フレーバー ファイル中のスタイルシートへの URL など必要に応じて書き換えてご使用ください。
基本的にここで公開するすべての フレーバーは UTF-8 でコーディングされた HTML ページを生成するようになります。UTF-8 以外の文字コードを使用する場合には、フレーバー ファイルの content_type.* を書き換え、すべてのフレーバー ファイルを変更した文字コードで保存しなおしてからご使用ください。

Ellinikonblue.com Tricolor Flavour Rev.3.1 originate from yukiakari::Notebook
yukiakari::Notebook で公開されています Tricolor Flavour をベースに、書き換えたオリジナルのシンプルな フレーバー です。
以前、公開したものに加えて、Rev.2 で writebackplus プラグイン 用の フレーバー を追加し、Rev.3 で wikieditish プラグイン 用の フレーバーを同梱しました。
詳しくは、アーカイブファイル中の Readme.txt をお読みください。
blosxom Tips †
こちら には、blosxom サイトを運用する上で、知っておくと便利な情報を集めてあります。
リンク集 †
blosxom サイト構築にあたって、参考にさせていただいるサイトです。
blosxom サイト構築の際にも参考になり、さらに powered by blosxom なサイトです。
- Blog Bookmarks.
- chromeGraphics::blosxom
- Ck2 Blogger
- hail2u.net
- Hajime ONLINE
- KANGAROO-WORLD
- Lazy Days
- Nest of Snowy Owls
- yukiakari::Notebook
その他、 blosxom 絡みのサイトです。

