Plagger::Plugin::Publish::Template

Category:
Software
Date:
2007-04-15T19:56:00+09:00

テンプレートでFeedを整形して出力するプラグイン

PlaggerでFeedの出力をテンプレートつかって自由に整形したい! ということでPublish::JavaScriptを継承して作ってみた。

package Plagger::Plugin::Publish::Template;
use strict;
use warnings;
use base qw( Plagger::Plugin::Publish::JavaScript );
sub register {
    my ( $self, $c ) = @_;
    $c->register_hook(
        $self,
        'publish.feed' => $self->can('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 $body = $self->templatize( $self->conf->{'template'} , { feed => $args->{feed} });
    open my $out, ">:utf8", $path or $context->error("$path: $!");
    print $out $body;
    close $out;
}
1;
__END__

ライセンスはPlaggerと同じPerlのライセンスで。設定はこんな感じ。

plugins:
  - module: Publish::Template
    config:
      dir: /path/to/dir
      template: template.tt
      filename: output.txt

dirfilenameはPublish::Javascriptと同じ。でtemplateに関しては、 Publish::Templateのassetsディレクトリから指定されたファイル、上記の場合だとtemplate.ttが読み込まれる。

ちなみにこのプラグイン、Publish::JavaScriptで読み込むテンプレート名を設定でいじれるようにしただけの代物。 結構簡単に書けました。

とりあえず、Blosxomのエントリ生成するとか色々できそう。

Trackbacks

Trackback URI

Comments

最新のコメント20件を表示しています

Post a comment

コメントを投稿する前にコメント/トラックバックについてをお読みください。

About Me

name
Naoki Okamura
nick
nyarla
contact
Ads
Category
Log
Banners
Powered by
blosxom (nyarla mod)