2005年05月09日 (月)

iBlog のバージョン表示を iblogPatcher で管理する方法

サイトに iBlog のバージョンを表示している方が結構いますね。もしあなたが iblogPatcher を使用しているのなら、iBlog のバージョンが上がる度に一々テンプレートを書き換えてプレビュー状態をリセットする必要は全くありません。

概要

これは iguttchi さんのエントリ「最近の変更点まとめ」のコメントに書いたものです。テンプレートの iBlog のバージョンを書くところに印をつけておき、preview after のときにそれをブログ定義ファイルに書いておいた iBlog のバージョンの表記に置き換えるというアイデアです。

このやり方ではブログ定義ファイルに書いたバージョン番号を変えて preview after を行えば全てのページの中の当該部分が入れ替わります。幾つものテンプレートファイルを書き換えたりする必要はありません。ナビゲーション項目として書くという iblogPatcher を使用していない方にも通用する方法がありますが、これですと全てのページに反映させるためにはプレビュー状態をリセットする必要がありました。その必要もありません。

ただし、私自身は iBlog のバージョンを表示していないので実際には試していません。何か書き間違えなどがありましたらご指摘ください。

テンプレートファイルへの仕込み

テンプレートファイルやナビゲーション項目の中で iBlog のバージョンを書きたいところへ次のように書いてください。

<!-- BEGIN iBlogVersion -->iBlog 0.0.0<!-- END iBlogVersion -->

最初なのでプレビュー状態をリセットするなどしてテンプレートをプレビューのページに反映させてください。

ブログ定義ファイルへの仕込み

ブログ定義ファイルの中の %ACTION > preview > after のセクションの中に次のコードを埋め込みます。

# iBlog のバージョンを埋め込む foreach ( 'BlogPage', 'CategoryPage', 'EntryPage', 'ArchivePage', 'YearPage', 'DayPage', ) { my $targetPage = $_; push @{$CHANGE_CONTENT::Conf{$targetPage}}, { condition => '<!-- BEGIN iBlogVersion -->iBlog¥s+¥d+(?:¥.¥d+)*<!-- END iBlogVersion -->', replace => '<!-- BEGIN iBlogVersion -->iBlog 1.4.3<!-- END iBlogVersion -->', option => 'g', # 一つのページに一カ所だけなら g は要らない }; }

埋め込む場所はエントリ「iblogPatcher のブログ定義ファイルテンプレート」で示したブログ定義ファイルでいうと # 連続する <br /> を一つにまとめる の前あたりがよいでしょう。

こののち preview after で iblogPatcher を実行するとテンプレートで仕込んだ部分に iBlog 1.4.3 が入ります。バージョンが上がったら上の replace の行の 1.4.3 の部分を書き換えてください。


Posted: 05:07    | Comment | Trackback


以下、類似エントリです。