blosxomのカスタマイズ#4
2005/05/29 (Sun) 19:28 [blosxom]
dynamic_cacheという負荷軽減に最適なプラグインについての修正です。
修正したのは以下の3点。
- 404 Not Found でもキャッシュが生成されてしまう。
- URLがパラメータ recache=all をつけて呼び出されたとき、キャッシュフォルダごと削除されてしまい、その後手動でキャッシュフォルダを作成するまでキャッシュが保存されない。
- カテゴリ/年、カテゴリ/年/月、カテゴリ/年/月/日のキャッシュが日付パスのキャッシュ削除を行っても削除されない。
修正のポイントは、以下の通り。
- エントリ数をカウントして、エントリが存在しないときはキャッシュを生成する処理を行わない。
- キャッシュフォルダが存在しない場合は自動的にフォルダを作成する。
- カテゴリ/年、カテゴリ/年/月、カテゴリ/年/月/日のキャッシュが日付パスのキャッシュ削除時に削除されるように修正。
実際の修正箇所は提示しづらいので省略します。興味のある方は現在使用中のものを参考にしてください。
blosxomのカスタマイズ#3
2005/05/29 (Sun) 15:24 [blosxom]
バグ報告をBBSでするのも書きづらいなぁということでこちらで書いてみることにしました。
まずはcategories(Version: 2004-06-04)プラグインから。
sub report_root 中の以下の部分。
foreach (sort @{$children{$blosxom::datadir}}) {
$results .= report_dir('/', $_);
}
このままだと、エントリがない状態でエラーになるので以下のように対策。
if (%children) {
foreach (sort @{$children{$blosxom::datadir}}) {
$results .= report_dir('/', $_);
}
}
blosxomのカスタマイズ#2
2005/05/29 (Sun) 11:07 [blosxom]
本サイトで使用しているプラグインは以下の通りです。構成を変えた場合は適宜修正予定です。
- archives
- ツリー形式で年月ごとのエントリ数を表示する。
blosxom starter kit付属のものを使用。HTMLタグの修正のみ。
- categories
- ツリー形式でカテゴリごとのエントリ数を表示する。
HTMLタグの修正と、コメント部分の有効化、若干のバグの修正のみ。
- complement_flavours
- 足りないフレーバーをデフォルトフレーバーで補ってくれる。
特に修正なし。
- css
- CSSを複数登録しておくとランダムで切り替えてくれる。
blosxom starter kit付属のものを使用。特に修正なし。
- date_title
- 年ごと及び月ごと、日ごとのページのタイトルに、年月日を表示できる。
blosxom starter kit付属のものを使用。特に修正なし。
- dynamic_cache
- 動的に生成したキャッシュを参照させることで負荷を軽減できる。
404 Not Found 時のキャッシュが生成されないようにしたのと、特定のキャッシュが残ってしまうのを修正。
- entries_index
- エントリの日付を作成日時に固定できる。
blosxom starter kit付属のものを使用。特に修正なし。
- entry_title
- エントリの個別ページのタイトルに、エントリのタイトルを表示できる。
特に修正なし。
- ext_spam_blocker
- スパム防止。
特に修正なし。
- file
- ファイルの内容をフレーバーに変数で埋め込むことができる。
特に修正なし。
- find
- エントリを検索できる。
特に修正なし。
- foreshortened
- 設定文字数以降を省略して表示できる。
特に修正なし。
- interpolate_fancy
- フレーバー内で条件制御できる。
特に修正なし。
- list_title_at_month
- 月ごとのエントリのタイトルを一覧表示できる。
HTMLタグの修正のみ。
- list_title_at_year
- 年ごとのエントリのタイトルを一覧表示できる。
HTMLタグの修正のみ。
- localnavi
- ナビゲーションリンクを表示する。
自作プラグイン。解説ページを用意しました。
- notfound
- 要求ページが存在しない場合 404 Not Found を返してくれる。
find プラグインでは 404 Not Found を返さないように修正。
- paging
- ページ送りの機能を持たせられる。
怪しいところをいろいろ修正。
- recentwritebacks_tree
- ツリー形式で最近のトラックバックやコメントを表示できる。
トラックバックやコメントの数をフレーバーで取得できるように修正。トラックバックの時刻を表示しないように修正。HTMLタグの修正。
- rss10
- RSS1.0の配信機能を持たせる。
blosxom starter kit付属のものを使用。リンク先のファイルの拡張子を修正。
- same_topic
- 同一トピックのみ列挙してくれる。
pagingプラグインとの兼ね合いでファイル名を変更。若干のバグを修正。
- seemore
- 「続きを読む」を実現する。
HTMLタグの修正のみ。
- wikieditish
- ブラウザ上でのエントリ編集機能を追加する。
blosxom starter kit付属のものを使用。リンク先のファイルの拡張子を修正。
- writeback
- コメントとトラックバックの機能を追加する。
dynamic_cache プラグインの関係で、cookie の処理を除去。その他細かい修正とHTMLタグの修正。
- x_double_posting_blocker
- コメント投稿時の2重投稿を防止する。
特に修正なし。
blosxomとPerlモジュール#2
2005/05/27 (Fri) 14:52 [blosxom]
blosxomとPerlモジュール#1の前にこっちを書くべきかと思ったのでエントリを追加。
そもそも利用するサーバに必要なPerlモジュールが導入されているかを調べるにはどうするのかな?と思ったときはfutomi's CGI Cafeさんのサーバーアナライザーが便利。
PHP遣いの方はphpinfo()ライクな出力をしてくれるPerlモジュール PHP::Perlinfo がCPANにあります。個人的にはこちらがお気に入り。
2005/9/9 追記。
PHP::Perlinfo から HTML::Perlinfo に名称が変わったようです。
また、単にperlinfo();としただけではコアモジュールのみ列挙されるようで、全モジュールのインストール状況を知るためにはperlinfo(INFO_MODULES);としないといけないようです。しかし、INFO_MODULES と指定すると、サーバ環境などは表示されなくなるので注意してください(Version 1.00)。
blosxomとPerlモジュール#1
2005/05/27 (Fri) 14:36 [blosxom]
blosxomのプラグインを導入するにあたって、いくつかPerlのモジュールが必要になることがありますが、利用しているサーバには該当モジュールが導入されていない、という場合があると思います。そういった場合に有用なTips。実際には個人的なメモだったり。
必要なPerlモジュールをCPANあたりからダウンロードして特定のディレクトリ(例えば /home/foo/public_html/lib )にアップロードした後、blosxom.cgiのpackage blosxom;と書かれているすぐ上かすぐ下の行あたりに、以下のように記述しておくだけでOK。
BEGIN {
unshift (@INC, "/home/foo/public_html/lib");
}
当然ながら /home/foo/public_html/lib の部分は環境に合わせて適宜書き換えてください。