]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki/Plugin/htmlscrubber.pm
move userlink to IkiWiki.pm
[ikiwiki.git] / IkiWiki / Plugin / htmlscrubber.pm
index 3035307c246001acefd8e3bd945a6f3b8280520b..bc613f92477ef55ef384f8a1bbf2887670c0e7a7 100644 (file)
@@ -3,7 +3,7 @@ package IkiWiki::Plugin::htmlscrubber;
 
 use warnings;
 use strict;
 
 use warnings;
 use strict;
-use IkiWiki;
+use IkiWiki 2.00;
 
 sub import { #{{{
        hook(type => "sanitize", id => "htmlscrubber", call => \&sanitize);
 
 sub import { #{{{
        hook(type => "sanitize", id => "htmlscrubber", call => \&sanitize);
@@ -19,32 +19,39 @@ sub scrubber { #{{{
        return $_scrubber if defined $_scrubber;
        
        eval q{use HTML::Scrubber};
        return $_scrubber if defined $_scrubber;
        
        eval q{use HTML::Scrubber};
+       error($@) if $@;
        # Lists based on http://feedparser.org/docs/html-sanitization.html
        # Lists based on http://feedparser.org/docs/html-sanitization.html
+       # With html 5 video and audio tags added.
        $_scrubber = HTML::Scrubber->new(
                allow => [qw{
        $_scrubber = HTML::Scrubber->new(
                allow => [qw{
-                       a abbr acronym address area b big blockquote br
+                       a abbr acronym address area b big blockquote br br/
                        button caption center cite code col colgroup dd del
                        dfn dir div dl dt em fieldset font form h1 h2 h3 h4
                        button caption center cite code col colgroup dd del
                        dfn dir div dl dt em fieldset font form h1 h2 h3 h4
-                       h5 h6 hr i img input ins kbd label legend li map
-                       menu ol optgroup option p pre q s samp select small
+                       h5 h6 hr hr/ i img input ins kbd label legend li map
+                       menu ol optgroup option p p/ pre q s samp select small
                        span strike strong sub sup table tbody td textarea
                        tfoot th thead tr tt u ul var
                        span strike strong sub sup table tbody td textarea
                        tfoot th thead tr tt u ul var
+                       video audio
                }],
                }],
-               default => [undef, { map { $_ => 1 } qw{
-                       abbr accept accept-charset accesskey action
-                       align alt axis border cellpadding cellspacing
-                       char charoff charset checked cite class
-                       clear cols colspan color compact coords
-                       datetime dir disabled enctype for frame
-                       headers height href hreflang hspace id ismap
-                       label lang longdesc maxlength media method
-                       multiple name nohref noshade nowrap prompt
-                       readonly rel rev rows rowspan rules scope
-                       selected shape size span src start summary
-                       tabindex target title type usemap valign
-                       value vspace width
-               }, "/" => 1, # emit proper <hr /> XHTML
-               }],
+               default => [undef, { (
+                       map { $_ => 1 } qw{
+                               abbr accept accept-charset accesskey action
+                               align alt axis border cellpadding cellspacing
+                               char charoff charset checked cite class
+                               clear cols colspan color compact coords
+                               datetime dir disabled enctype for frame
+                               headers height href hreflang hspace id ismap
+                               label lang longdesc maxlength media method
+                               multiple name nohref noshade nowrap prompt
+                               readonly rel rev rows rowspan rules scope
+                               selected shape size span src start summary
+                               tabindex target title type usemap valign
+                               value vspace width
+                               poster autoplay loopstart loopend end
+                               playcount controls 
+                       } ),
+                       "/" => 1, # emit proper <hr /> XHTML
+                       }],
        );
        return $_scrubber;
 } # }}}
        );
        return $_scrubber;
 } # }}}