HTML::Feature でフィルタを作ってみた
Filter::Louを参考に作ってみた。
utf8::encode($str);
がないとどうもいかないようだった。
package Plagger::Plugin::Filter::HTMLFeature; use strict; use base qw( Plagger::Plugin ); use utf8; use HTML::Feature; sub register { my ($self, $context) = @_; $context->register_hook( $self, 'plugin.init' => \&init_htmlfeature, 'update.entry.fixup' => \&filter, ); } sub init_htmlfeature { my ($self, $context, $args) = @_; $context->log(debug => "initializing HTML::Feature"); $self->{htmlfeature} = HTML::Feature->new; } sub filter { my ($self, $context, $args) = @_; my $entry = $args->{entry}; my $_s = $entry->body; utf8::encode($_s); my $_r = $self->{htmlfeature}->parse_html($_s); $entry->body( $_r->element->as_HTML ); } 1;