From: Simon McVittie <smcv@ http://smcv.pseudorandom.co.uk/>
Date: Tue, 18 Nov 2008 11:25:13 +0000 (+0000)
Subject: htmlbalance: don't compact whitespace, and set misc other options
X-Git-Tag: 2.71~92^2~1
X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/commitdiff_plain/473160c947f7c986ac692814190422ad85242346

htmlbalance: don't compact whitespace, and set misc other options

Not compacting whitespace is the most important one: now that we run
sanitize hooks on individual posted comments in the comments plugin,
whitespace that is significant to Markdown (but not HTML) is lost.
(cherry picked from commit cb5aaa3cee8b35d6fc6e88a7449a9477a6587c7a)
---

diff --git a/IkiWiki/Plugin/htmlbalance.pm b/IkiWiki/Plugin/htmlbalance.pm
index 3a2d62d15..dcd92055f 100644
--- a/IkiWiki/Plugin/htmlbalance.pm
+++ b/IkiWiki/Plugin/htmlbalance.pm
@@ -30,7 +30,15 @@ sub sanitize (@) { #{{{
 	my %params=@_;
 	my $ret = '';
 
-	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) {