diff options
-rw-r--r-- | IkiWiki/Plugin/htmlscrubber.pm | 2 | ||||
-rw-r--r-- | debian/changelog | 1 | ||||
-rw-r--r-- | doc/bugs/htmlscrubber_breaks_multimarkdown_footnotes.mdwn | 18 | ||||
-rw-r--r-- | doc/bugs/po:_po_files_instead_of_html_files.mdwn | 4 | ||||
-rw-r--r-- | doc/todo/edit_form:_no_fixed_size_for_textarea.mdwn | 2 | ||||
-rw-r--r-- | doc/todo/support_link__40__.__41___in_pagespec.mdwn | 3 | ||||
-rwxr-xr-x | t/htmlize.t | 20 |
7 files changed, 47 insertions, 3 deletions
diff --git a/IkiWiki/Plugin/htmlscrubber.pm b/IkiWiki/Plugin/htmlscrubber.pm index 847518178..927792f79 100644 --- a/IkiWiki/Plugin/htmlscrubber.pm +++ b/IkiWiki/Plugin/htmlscrubber.pm @@ -32,7 +32,7 @@ sub import { ); # data is a special case. Allow a few data:image/ types, # but disallow data:text/javascript and everything else. - $safe_url_regexp=qr/^(?:(?:$uri_schemes):|data:image\/(?:png|jpeg|gif)|[^:]+(?:$|[\/\?]))/i; + $safe_url_regexp=qr/^(?:(?:$uri_schemes):|data:image\/(?:png|jpeg|gif)|[^:]+(?:$|[\/\?#]))|^#/i; } sub getsetup () { diff --git a/debian/changelog b/debian/changelog index 8fee36b98..fb445a3ff 100644 --- a/debian/changelog +++ b/debian/changelog @@ -9,6 +9,7 @@ ikiwiki (3.20100816) UNRELEASED; urgency=low (and MSIE 8 in compat mode). Thanks to Iain McLaren for reporting the bug and providing access to debug it. * style.css: Use relative, not absolute font sizes. Thanks, Giuseppe Bilotta. + * htmlscrubber: Do not scrub url anchors that contain colons. -- Joey Hess <joeyh@debian.org> Sun, 15 Aug 2010 11:45:48 -0400 diff --git a/doc/bugs/htmlscrubber_breaks_multimarkdown_footnotes.mdwn b/doc/bugs/htmlscrubber_breaks_multimarkdown_footnotes.mdwn new file mode 100644 index 000000000..343037b45 --- /dev/null +++ b/doc/bugs/htmlscrubber_breaks_multimarkdown_footnotes.mdwn @@ -0,0 +1,18 @@ +I enabled multimarkdown to make use of footnotes in my file. I have the multimarkdown plugin, +as well as the command-line program. If I write a document with footnotes: + + This line has a footnote[^1] + + [^1]: this is the footnote + +and compile it from the cli, the reference becomes a link to the footnote and the footnote +gets a backreferencing link appended. When compiled in ikiwiki with the goodstuff plugin +enabled, the links are created but their hrefs are empty (so they do not actually act as links). +Disabling the htmlscrubber plugin fixes this issue + +[[!tag multimarkdown htmlscrubber]] + +> href was of the form: #fnref:1 , scrubbed by overzealous protocol +> scrubbing. + +[[done]] --[[Joey]] diff --git a/doc/bugs/po:_po_files_instead_of_html_files.mdwn b/doc/bugs/po:_po_files_instead_of_html_files.mdwn index 4b08c7c70..933e348c4 100644 --- a/doc/bugs/po:_po_files_instead_of_html_files.mdwn +++ b/doc/bugs/po:_po_files_instead_of_html_files.mdwn @@ -1,4 +1,6 @@ On the home page of my wiki, when i click on the link "ikiwiki", i get the english file instead of the french file. At the bottom of this page, there is the "Links" line: Links: index index.fr templates templates.fr -When i click on "templates.fr", i get the po.file instead of html. +When i click on "templates.fr", i get the po.file instead of html. + + Sorry for the noise! I set "po_master_language" to fr and all was ok. [[done]]. diff --git a/doc/todo/edit_form:_no_fixed_size_for_textarea.mdwn b/doc/todo/edit_form:_no_fixed_size_for_textarea.mdwn index 0c45f0c90..577c3dad8 100644 --- a/doc/todo/edit_form:_no_fixed_size_for_textarea.mdwn +++ b/doc/todo/edit_form:_no_fixed_size_for_textarea.mdwn @@ -38,3 +38,5 @@ have a small resize handle in a corner, that can be dragged around. No nasty javascript needed. IMHO, this is the right solution, and I hope other browsers emulate it. [[done]] --[[Joey]] + +Wouldn't it be possible to just implement an integer-valued setting for this, accessible via the "Setup" wiki page? This would require a wiki regen, but such a setting would not be changed frequently I suppose. Also, Mediawiki has this implemented as a per-user setting (two settings, actually, -- number of rows and columns of the edit area); such a per-user setting would be the best possible implementation, but I'm not sure if ikiwiki already supports per-user settings. Please consider implementing this as the current 20 rows is a great PITA for any non-trivial page. diff --git a/doc/todo/support_link__40__.__41___in_pagespec.mdwn b/doc/todo/support_link__40__.__41___in_pagespec.mdwn index da55bce67..79809662a 100644 --- a/doc/todo/support_link__40__.__41___in_pagespec.mdwn +++ b/doc/todo/support_link__40__.__41___in_pagespec.mdwn @@ -8,3 +8,6 @@ which uses !inline to list all posts with the tag. Joey said on IRC that "probably changing the derel() function in IkiWiki.pm is the best way to do it". +> I implemented this suggestion in the simplest possible way, [[!taglink patch]] available [[here|http://git.oblomov.eu/ikiwiki/patch/f4a52de556436fdee00fd92ca9a3b46e876450fa]]. +> An alternative approach, very similar, would be to make the empty page parameter mean current page (e.g. `link()` would mean pages linking here). The patch would be very similar. +> -- GB diff --git a/t/htmlize.t b/t/htmlize.t index a7e7f8c39..a436748f9 100755 --- a/t/htmlize.t +++ b/t/htmlize.t @@ -1,7 +1,7 @@ #!/usr/bin/perl use warnings; use strict; -use Test::More tests => 26; +use Test::More tests => 32; use Encode; BEGIN { use_ok("IkiWiki"); } @@ -68,3 +68,21 @@ is(IkiWiki::htmlize("foo", "foo", "mdwn", is(IkiWiki::htmlize("foo", "foo", "mdwn", q{<span class="foo">bar</span>}), q{<span class="foo">bar</span>}, "class attribute allowed"); +is(IkiWiki::htmlize("foo", "foo", "mdwn", + q{<a href="aaa#foo">}), + q{<a href="aaa#foo">}, "simple anchor allowed"); +is(IkiWiki::htmlize("foo", "foo", "mdwn", + q{<a href="aaa#foo:bar">}), + q{<a href="aaa#foo:bar">}, "colon allowed in anchor"); +is(IkiWiki::htmlize("foo", "foo", "mdwn", + q{<a href="aaa?foo:bar">}), + q{<a href="aaa?foo:bar">}, "colon allowed in query string"); +is(IkiWiki::htmlize("foo", "foo", "mdwn", + q{<a href="foo:bar">}), + q{<a>}, "unknown protocol blocked"); +is(IkiWiki::htmlize("foo", "foo", "mdwn", + q{<a href="#foo">}), + q{<a href="#foo">}, "simple relative anchor allowed"); +is(IkiWiki::htmlize("foo", "foo", "mdwn", + q{<a href="#foo:bar">}), + q{<a href="#foo:bar">}, "colon in simple relative anchor allowed"); |