棚からパルチャギ

日々の雑記、ニュース拾いとか

Blosxom Plugins


Blosxom plugin : 表示数を日単位にするプラグイン(仮称:よしたか)
標準ではエントリ単位である表示数の指定を、日付単位での指定にします。
blosxomを日記CGIのように使用したい人向けです。

また、paginateのようなページ切り替えプラグインとの併用はできないため、独自のページ切り替え機能を実装しています。 動作サンプルはここのサイトを見ていただければ分かると思います。

Blosxom plugin : flavour をディレクトリ毎に管理するプラグイン
「html」「rss」「wikieditish」など複数のflavourを使用している場合、ディレクトリ毎に管理できます。 元ネタはflavourdirですが、 拡張子をhtml(任意)に統一することでエディタのハイライト等の恩恵も受けられるようになります。

デフォルトの設定では、以下のようにファイルを配置します。
blosxom.cgiと同じ階層にflavoursディレクトリを作成し、その下にflavour名でディレクトリを作成します。 テンプレートファイルの拡張子は全てhtmlで統一されるので、デフォルトflavourの入れ替えも容易です。
blosxom.cgi
/datadir
/plugins
/flavours
   /html
      head.html, foot.html, story.html ... (*.htmlでアクセスされた場合のflavour)
   /rss
      head.html, foot.html, story.html ... (*.rssでアクセスされた場合のflavour)
   /wikieditish

flavourdirからの修正点は、これだけ。
my $flavour_dir = "./flavours";
my $flavour_extension = "html";

return join '', <$fh> if $fh->open("< $flavour_dir/$flavour/$p/$chunk.$flavour_extension");

Blosxom plugin : ディレクトリ名の制限解除プラグイン
仕様なのか不具合なのか、標準のblosxomではディレクトリ(カテゴリ)名はアルファベットで始まるもの以外はカテゴリ別・個別表示が正しく表示されません。 これはblosxomのPATH_INFO解析部分がそのように記述されているためですが、特にアルファベットに限定する理由も無いので「数字のみ」以外のディレクトリ名を全て認識できるように調整します。

blosxom.cgiの107行目を以下のように修正しても同様の効果が得られます。
- while ($path_info[0] and $path_info[0] =~ /^[a-zA-Z].*$/ and ...
+ while ($path_info[0] and $path_info[0] =~ /.*[\D].*$/ and ...

また、標準では括弧を含むディレクトリやファイル名にも問題があるため、エスケープして対応させています。
実行順には他のプラグインよりも優先的に行う必要があるため、ファイル名の先頭に「00」を付けています。

Blosxom plugin : awsxom (Product Advertising API対応版)
2009/08/15以降、AmazonアソシエイトのAPIには署名認証が必要になったのでawsxomの対応版。 awsxomはfukazawa tsuyoshi氏によるBloxsomプラグインです。

設定項目はほぼ従来通り。シークレットキーが追加されて、以前のデベロッパーズトークンはアクセスキーの名前が変わっています。
my $asoid = "AmazonアソシエイトID"; # AmazonアソシエイトIDi
my $accesskey = "アクセスキー"; # アクセスキー
my $secretkey = "シークレットキー"; # シークレットキー

環境によってはDigest::SHAが導入できないこともあるので、その場合はDigest::SHA::PurePerlを適当な場所に設置して利用します。 $plugin_dir/libに設置した場合、以下のようにuse宣言を修正します。
#use Digest::SHA qw(hmac_sha256_base64);
use lib "$blosxom::plugin_dir/lib";
use Digest::SHA::PurePerl qw(hmac_sha256_base64);