summaryrefslogtreecommitdiff
path: root/doc/patchqueue/html_tidy_plugin.mdwn
diff options
context:
space:
mode:
Diffstat (limited to 'doc/patchqueue/html_tidy_plugin.mdwn')
-rw-r--r--doc/patchqueue/html_tidy_plugin.mdwn38
1 files changed, 38 insertions, 0 deletions
diff --git a/doc/patchqueue/html_tidy_plugin.mdwn b/doc/patchqueue/html_tidy_plugin.mdwn
new file mode 100644
index 000000000..a8b9f2728
--- /dev/null
+++ b/doc/patchqueue/html_tidy_plugin.mdwn
@@ -0,0 +1,38 @@
+Obvious and straightforward ;-)
+tidy should be probably added to Suggests -- doc/ikiwiki.setup should also be updated.
+(yes, I'm too lazy today...)
+
+-- [[Faidon]]
+
+---
+
+ #!/usr/bin/perl
+ # HTML Tidy plugin
+ # requires 'tidy' binary, found in Debian or http://tidy.sf.net/
+ # mostly a proof-of-concept on how to use external filters.
+ # It is particularly useful when the html plugin is used.
+ package IkiWiki::Plugin::tidy;
+
+ use warnings;
+ use strict;
+ use IkiWiki;
+ use IPC::Open2;
+
+ sub import { #{{{
+ IkiWiki::hook(type => "sanitize", id => "tidy", call => \&sanitize);
+ } # }}}
+
+ sub sanitize ($) { #{{{
+ open2(*IN, *OUT, 'tidy -quiet -xml -indent -utf8') or return shift;
+ # open2 doesn't respect "use open ':utf8'"
+ binmode (IN, ':utf8');
+ binmode (OUT, ':utf8');
+
+ print OUT shift;
+ close OUT;
+
+ local $/ = undef;
+ return <IN>;
+ } # }}}
+
+ 1 \ No newline at end of file