Plagger::Plugin::Publish::Templateを改造
-
- posted at
- 2007-05-07T10:27+09:00
-
- Category :
Plagger::Plugin::Publish::Templateを改造した。
自分で作ったPlagger::Plugin::Publish::Templateのfeedメソッドを改造してテンプレート変数をいじれるようにした。
で、編集内容。
sub feed {
my($self, $context, $args) = @_;
my $file = Plagger::Util::filename_for($args->{feed}, $self->conf->{filename} || '%i.txt');
my $path = File::Spec->catfile($self->conf->{dir}, $file);
$context->log(info => "writing output to $path");
# 変数の展開
my $variables = { feed => $args->{'feed'} };
my $vars = $self->conf->{'variable'} || {};
for my $key ( keys %{ $vars } ) {
my $result = eval $vars->{$key};
if ( $@ ) {
$context->error( $@ );
}
else {
$variables->{$key} = $result;
}
}
my $body = $self->templatize( $self->conf->{'template'} , $variables );
open my $out, ">:utf8", $path or $context->error("$path: $!");
print $out $body;
close $out;
}
plugins:
- module: Publish::Template
rule:
expression: require Plagger::Date; 1;
config:
template: template.tt
filename: output.txt
dir: /path/to/output/dir
variable:
now: Plagger::Date->now
conf: $self->conf
こんな感じで設定で変数をいじれるようにした。で、変数をいじるのに必要なモジュールはRule::Expressionで読み込めばいいと思う。
Windowsでdiffどうやってとったらいいかよく分からないというか調べるのが面倒なので、変更箇所をそのままアップしてみる。
開発環境整えないとまずいな。
明らかに変なコード書いてたので修正。
- 同じトピックのエントリを見る
-
- Writebacks :
- No Comment
- No TrackBack
