Publish::OOoWriter

OpenOffice.org Writerに出力するPlugin。
つくりかけ。

package Plagger::Plugin::Publish::OOoWriter;
use strict;
use base qw(Plagger::Plugin);

our $Version = '0.01';

use OpenOffice::OODoc;

ooLocalEncoding('UTF-8');

sub register {
    my ($self, $context, $args) = @_;
    $context->register_hook(
        $self,
        'publish.feed' => \&feed,
    );
}

sub feed {
    my ($self, $context, $args) = @_;

    my $body = $self->templatize('oo.tt', { feed => $args->{feed} });
    Encode::_utf8_off($body) if Encode::is_utf8($body);

    my $filename = $args->{feed}->title . '.odt';

    my $oo = ooDocument(
        file   => $filename,
        create => 'text'
    );
    $oo->appendParagraph(text => $body);
    $oo->save;

    $context->log(info => "Save $filename");
}

1;

oo.tt

[% feed.title_text %]

[% FOREACH entry = feed.entries %]
[% entry.title_text %]
Link: [% entry.permalink %]
by [% entry.author %]
[% entry.body_text %]
Posted on [% entry.date.format('Mail') %]


[% END %]


TODO
OpenOffice::OODocの使い方を調べる。
文字コード関連の処理がよくわからんので調べる。
テンプレート使わずに出力できるようにする。