トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

Web Application Knowledge

blosxom

http://blosxom.sourceforge.net/

 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 で使用しているプラグインの一部は GitHub を利用して公開しています。

現在使用中のプラグイン

 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 をご用意しています。
gsitemap
 Google サイトマップ に対応するためのプラグインです。
jasin
 Amazon.co.jp 向けにローカライズ+ちょっとプログラムを見直した asin プラグイン
Liteback
 writebackplus プラグインなどをベースに開発中の同系のオリジナルプラグインです。
nofound
 存在しないページに対して「 404 not found 」を返すためのプラグイン。徒書notfound プラグイン に存在しないインデックスページもはじく機能を付加して作り直してあります。

現在は使用していないプラグイン

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 プラグイン を使用しています。
snap_in
 autoimgプラグイン を激しくスペックダウンして作った snapimg プラグインに機能強化を施し、画像ファイル以外に、別に用意した HTML ファイルをエントリに取り込めるようにしたプラグインです。現在は bracket_fep 専用プラグインとして実装している bsnap_lt / bsnap_hs を使用しています。

その他のオリジナルプラグイン

entries_csv
「 entries_index プラグイン改( entries_csvidx プラグイン)」
改良版 foreshortened
「 foreshortened プラグインを改造してみた」
snapimg
「 snapimg プラグイン」

フレーバーの導入

 blosxom.cgi は初期設定では日本語の文字コードに対応したページを生成しないため、日本語ページの構成ではフレーバーの導入は必須になります(直接 blosxom.cgi を編集して、日本語の文字コードに対応したページを生成させるという手はありますが、フレーバーを導入した方が、応用が利きそうな気がします)。

 フレーバーを作成するのが面倒な方は、以前、Ellinikonblue.com Weblog で使用していたフレーバーを以下で公開しますので、これをそのままもしくは手を入れてご使用ください。

 オリジナルのフレーバー作成に興味のある方はこちらへどうぞ。

Ellinikonblue.com オリジナルフレーバー

 ここでは Ellinikonblue.com Weblog で使用していたフレーバーを公開しています。

 ここで公開している フレーバー のアーカイブファイルを解凍すると以下の二つのディレクトリができます。

css/
 各 フレーバー 用に記述されたスタイルシート群があります。このディレクトリごと 適当なディレクトリにアップロードしてください。
data/
 フレーバー のファイル群があります。データ保存ディレクトリに中身だけをアップロードしてください。head.* など フレーバー ファイル中のスタイルシートへの URL など必要に応じて書き換えてご使用ください。

 基本的にここで公開するすべての フレーバーUTF-8 でコーディングされた HTML ページを生成するようになります。UTF-8 以外の文字コードを使用する場合には、フレーバー ファイルの content_type.* を書き換え、すべてのフレーバー ファイルを変更した文字コードで保存しなおしてからご使用ください。


imgTricolor_v2.jpg

Ellinikonblue.com Tricolor Flavour Rev.3.1 originate from yukiakari::Notebook

ダウンロード fileEBFlavourR3_1.lzh

 yukiakari::Notebook で公開されています Tricolor Flavour をベースに、書き換えたオリジナルのシンプルな フレーバー です。

 以前、公開したものに加えて、Rev.2 で writebackplus プラグイン 用の フレーバー を追加し、Rev.3 で wikieditish プラグイン 用の フレーバーを同梱しました。

 詳しくは、アーカイブファイル中の Readme.txt をお読みください。

blosxom Tips

 こちら には、blosxom サイトを運用する上で、知っておくと便利な情報を集めてあります。

リンク集

 blosxom サイト構築にあたって、参考にさせていただいるサイトです。

 blosxom サイト構築の際にも参考になり、さらに powered by blosxom なサイトです。

 その他、 blosxom 絡みのサイトです。



*1 絶対パスとも言います
添付ファイル: fileEBFlavourR3_1.lzh 3176件 [詳細] fileEBFlavourR3.lzh 1553件 [詳細] fileEBFlavourR2.lzh 1600件 [詳細] fileEBFlavourR1.lzh 1560件 [詳細] fileimgTricolor_v2.jpg 1512件 [詳細]

© 2004-2011 Ellinikonblue.com All Rights Reserved.