use warnings;
use strict;
use IkiWiki 2.00;
+use HTML::TreeBuilder;
+use HTML::Entities;
sub import { #{{{
hook(type => "getsetup", id => "htmlbalance", call => \&getsetup);
my %params=@_;
my $ret = '';
- eval {
- use HTML::TreeBuilder;
- use XML::Atom::Util qw(encode_xml);
- };
-
- if ($@) {
- error($@);
- return $params{content};
- }
-
- my $tree = HTML::TreeBuilder->new_from_content($params{content});
+ my $tree = HTML::TreeBuilder->new();
+ $tree->ignore_unknown(0);
+ $tree->ignore_ignorable_whitespace(0);
+ $tree->no_space_compacting(1);
+ $tree->p_strict(1);
+ $tree->store_comments(0);
+ $tree->store_declarations(0);
+ $tree->store_pis(0);
+ $tree->parse_content($params{content});
my @nodes = $tree->disembowel();
foreach my $node (@nodes) {
if (ref $node) {
$node->delete();
}
else {
- $ret .= encode_xml($node);
+ $ret .= encode_entities($node);
}
}
$tree->delete();