web commit by FaidonLiambotis: Add HTML Tidy plugin to patchqueue
authorwww-data <www-data@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>
Sat, 29 Jul 2006 20:39:34 +0000 (20:39 +0000)
committerwww-data <www-data@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>
Sat, 29 Jul 2006 20:39:34 +0000 (20:39 +0000)
doc/patchqueue/html_tidy_plugin.mdwn [new file with mode: 0644]

diff --git a/doc/patchqueue/html_tidy_plugin.mdwn b/doc/patchqueue/html_tidy_plugin.mdwn
new file mode 100644 (file)
index 0000000..a8b9f27
--- /dev/null
@@ -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