use strict; use warnings; use Text::Chalow::Parser; use Template; use Text::Hatena; use DateTime; my $file = shift @ARGV || die "Usage: $0 ChangeLog"; &main;exit; sub main { print render(load()); } sub load { my $parser = Text::Chalow::Parser->new(); open my $fh, '<', $file or die $!; $parser->read_file($fh); $parser->{all}; } sub render { my $data = shift; my $tt = Template->new( FILTERS => +{ hatena => sub { Text::Hatena->parse($_[0]) }, date => sub { my ($y, $m, $d) = split /-/, $_[0]; DateTime->new(year => $y, month => $m, day => $d)->strftime('%Y-%m-%d(%a)') }, } ); $tt->process(\*DATA, {data => $data}, \my $out) or die $tt->error; $out } # AUTHOR: Tokuhiro Matsuno # LICENSE: Same as Perl. __END__