X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/cb5aaa3cee8b35d6fc6e88a7449a9477a6587c7a..492a22ac75f8b41a427a98c44525b01a6fd181b5:/IkiWiki/Plugin/htmlbalance.pm diff --git a/IkiWiki/Plugin/htmlbalance.pm b/IkiWiki/Plugin/htmlbalance.pm index dcd92055f..da450eea7 100644 --- a/IkiWiki/Plugin/htmlbalance.pm +++ b/IkiWiki/Plugin/htmlbalance.pm @@ -9,27 +9,28 @@ package IkiWiki::Plugin::htmlbalance; use warnings; use strict; -use IkiWiki 2.00; -use HTML::TreeBuilder; +use IkiWiki 3.00; use HTML::Entities; -sub import { #{{{ +sub import { hook(type => "getsetup", id => "htmlbalance", call => \&getsetup); hook(type => "sanitize", id => "htmlbalance", call => \&sanitize); -} # }}} +} -sub getsetup () { #{{{ +sub getsetup () { return plugin => { safe => 1, rebuild => undef, }, -} #}}} +} -sub sanitize (@) { #{{{ +sub sanitize (@) { my %params=@_; my $ret = ''; + eval q{use HTML::TreeBuilder}; + error $@ if $@; my $tree = HTML::TreeBuilder->new(); $tree->ignore_unknown(0); $tree->ignore_ignorable_whitespace(0); @@ -42,7 +43,7 @@ sub sanitize (@) { #{{{ my @nodes = $tree->disembowel(); foreach my $node (@nodes) { if (ref $node) { - $ret .= $node->as_XML(); + $ret .= $node->as_HTML(undef, '', {}); chomp $ret; $node->delete(); } @@ -52,6 +53,6 @@ sub sanitize (@) { #{{{ } $tree->delete(); return $ret; -} # }}} +} 1