Serene Bach 3.00 beta020

2009/02/19 Thu 19:30
takkyun


静的ファイル構築時のプラグインフック

Serene Bach 3.00beta020 より静的ファイル構築時に呼び出されるプラグイン (以下、ビルド用プラグイン) 向けにエントリーポイントが追加されました。

ビルド用プラグインは、以下のタイミングで呼び出されます。

sb::Build オブジェクト生成時以外は prebuild_xxx と postbuild_xxx のモードがあり、それぞれ静的ファイル生成前後に呼ばれます。

ビルド用プラグインは、Serene Bach プラグイン API 「register_extra_module」を通して登録します。

sb::Plugin->register_extra_module(
  'type'     => 'build',
  'callback' => \&_callback, # コールバックのリファレンス
);

登録したコールバックには、sb::Build のインスタンス、モード、場合によってターゲットとなっている記事オブジェクトが引き渡されます。

sub _callback
{
  my $builder = shift; # sb::Build インスタンス
  my $mode = shift; # モード / initialize, xxx_entry, xxx_top, xxx_receipt, xxx_all
  my $obj  = shift; # ターゲット記事オブジェクト (xxx_entry or xxx_receipt)
  # 以下、コード
}

ターゲット記事オブジェクトは、記事ファイル生成・更新時ないしコメント・トラックバック受信時のみセットされます。

ビルド用プラグインのサンプル

以下のサンプルプラグインは、静的ファイル生成時にデバッグ出力を行なうシンプルなビルド用プラグインです。

package sb::Plugin::BuildSample;
use sb::Plugin ();
# --------------------------------------
sb::Plugin->register_plugin(
  'lang' => {
    'ja' => 'utf8',
    'en' => 'ascii',
  },

[7] beginning... [9] >>
-
-


<< Serene Bach 3.00 beta019
Serene Bach 3.00 beta021 >>
[0] [top]


[Serene Bach 2.25R]