Photos
Blog
Projects
vanrenterghem.biz
projects
/
git.ikiwiki.info.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
done-ish
[git.ikiwiki.info.git]
/
IkiWiki
/
Plugin
/
htmltidy.pm
diff --git
a/IkiWiki/Plugin/htmltidy.pm
b/IkiWiki/Plugin/htmltidy.pm
index fa08e4ef5d29f218018fa9da172a1fe2f5b1eb5a..0609e72c328e5ea4fc06b945203f51f73e0e6338 100644
(file)
--- a/
IkiWiki/Plugin/htmltidy.pm
+++ b/
IkiWiki/Plugin/htmltidy.pm
@@
-13,20
+13,33
@@
use IkiWiki;
use IPC::Open2;
sub import { #{{{
use IPC::Open2;
sub import { #{{{
-
IkiWiki::
hook(type => "sanitize", id => "tidy", call => \&sanitize);
+ hook(type => "sanitize", id => "tidy", call => \&sanitize);
} # }}}
} # }}}
-sub sanitize ($) { #{{{
- open2(*IN, *OUT, 'tidy -quiet -xml -indent -utf8') or return shift;
+sub sanitize (@) { #{{{
+ my %params=@_;
+
+ my $pid;
+ my $sigpipe=0;
+ $SIG{PIPE}=sub { $sigpipe=1 };
+ $pid=open2(*IN, *OUT, 'tidy -quiet -asxhtml -utf8 --show-body-only yes --show-warnings no --tidy-mark no');
+
# open2 doesn't respect "use open ':utf8'"
# open2 doesn't respect "use open ':utf8'"
- binmode (IN, ':utf8');
+ binmode (IN, ':utf8');
binmode (OUT, ':utf8');
binmode (OUT, ':utf8');
- print OUT
shift
;
+ print OUT
$params{content}
;
close OUT;
local $/ = undef;
close OUT;
local $/ = undef;
- return <IN>;
+ my $ret=<IN>;
+ close IN;
+ waitpid $pid, 0;
+
+ return $params{content} if $sigpipe;
+ $SIG{PIPE}="DEFAULT";
+
+ return $ret;
} # }}}
1
} # }}}
1