1 We should support SVG. In particular:
3 * We could support rendering SVGs to PNGs when compiling the wiki. Not all browsers support SVG yet.
5 * We could support editing SVGs via the web interface. SVG can contain unsafe content such as scripting, so we would need to whitelist safe markup.
11 I'm allowing for inline SVG on my own installation. I've patched my
12 copy of htmlscrubber.pm to allow safe MathML and SVG elements (as
13 implemented in html5lib). <del datetime="2008-03-20T23:04-05:00">Here's a patch
14 if anyone else is interested.</del>
15 <ins datetime="2008-03-20T23:05-05:00">Actually, that patch wasn't quite
16 right. I'll post a new one when it's working properly.</ins> --[[JasonBlevins]]
20 I'd like to hear what people think about the following:
22 1. Including whitelists of elements and attributes for SVG and MathML in
25 2. Creating a whitelist of safe SVG (and maybe even HTML) style
26 attributes such as `fill`, `stroke-width`, etc.
28 This is how the [sanitizer][] in html5lib works. It shouldn't be too
29 hard to translate the relevant parts to Perl.
31 --[[JasonBlevins]], March 21, 2008 11:39 EDT
33 [sanitizer]: http://code.google.com/p/html5lib/source/browse/trunk/ruby/lib/html5/sanitizer.rb
37 Another problem is that [HTML::Scrubber][] converts all tags to lowercase.
38 Some SVG elements, such as viewBox, are mixed case. It seems that
39 properly handling SVG might require moving to a different sanitizer.
40 It seems that [HTML::Sanitizer][] has functions for sanitizing XHTML.
41 Any thoughts? --[[JasonBlevins]], March 21, 2008 13:54 EDT
43 [HTML::Scrubber]: http://search.cpan.org/~podmaster/HTML-Scrubber-0.08/Scrubber.pm
44 [HTML::Sanitizer]: http://search.cpan.org/~nesting/HTML-Sanitizer-0.04/Sanitizer.pm
46 I figured out a quick hack to make HTML::Scrubber case-sensitive by
47 making the underlying HTML::Parser case-sensitive:
49 $_scrubber->{_p}->case_sensitive(1);
51 So now I've got a version of [htmlscrubber.pm][] ([diff][])
52 which allows safe SVG and MathML elements and attributes (but no
53 styles—do we need them?). I'd be thrilled to see this
54 in the trunk if other people think it's useful.
55 --[[JasonBlevins]], March 24, 2008 14:56 EDT
57 [htmlscrubber.pm]:http://xbeta.org/gitweb/?p=xbeta/ikiwiki.git;a=blob;f=IkiWiki/Plugin/htmlscrubber.pm;h=3c0ddc8f25bd8cb863634a9d54b40e299e60f7df;hb=fe333c8e5b4a5f374a059596ee698dacd755182d
58 [diff]: http://xbeta.org/gitweb/?p=xbeta/ikiwiki.git;a=blobdiff;f=IkiWiki/Plugin/htmlscrubber.pm;h=3c0ddc8f25bd8cb863634a9d54b40e299e60f7df;hp=3bdaccea119ec0e1b289a0da2f6d90e2219b8d66;hb=fe333c8e5b4a5f374a059596ee698dacd755182d;hpb=be0b4f603f918444b906e42825908ddac78b7073