From: joey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071> Date: Fri, 28 Sep 2007 20:50:20 +0000 (+0000) Subject: * camelcase: Tighten regexp to avoid false positives. WikiWords are only X-Git-Tag: 2.9~26 X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/commitdiff_plain/ed4b6afc9b3b43e1f7e70ff01a77472c7983a549 * camelcase: Tighten regexp to avoid false positives. WikiWords are only linkified now if they are preceeded by whitespace. --- diff --git a/IkiWiki/Plugin/camelcase.pm b/IkiWiki/Plugin/camelcase.pm index dc89f1b90..845a516ee 100644 --- a/IkiWiki/Plugin/camelcase.pm +++ b/IkiWiki/Plugin/camelcase.pm @@ -16,10 +16,11 @@ sub filter (@) { #{{{ # Make CamelCase links work by promoting them to fullfledged # WikiLinks. This regexp is based on the one in Text::WikiFormat. $params{content}=~s{ - (?<![[|"/>=]) # try to avoid expanding non-links - # with a zero width negative lookbehind for - # characters that suggest it's not a link - \b # word boundry + (?<![^A-Za-z0-9\s]) # try to avoid expanding non-links + # with a zero width negative + # lookbehind for characters that + # suggest it's not a link + \b # word boundry ( (?: [A-Z] # Uppercase start diff --git a/debian/changelog b/debian/changelog index 081af219f..7d581cbf2 100644 --- a/debian/changelog +++ b/debian/changelog @@ -19,8 +19,10 @@ ikiwiki (2.9) UNRELEASED; urgency=low * Don't allow whitespace in link text in a wikilink. This was still allowed by the regexp in one case though not documented to work, and was ambiguous with preprocessor directives. + * camelcase: Tighten regexp to avoid false positives. WikiWords are only + linkified now if they are preceeded by whitespace. - -- Joey Hess <joeyh@debian.org> Mon, 24 Sep 2007 12:48:35 -0400 + -- Joey Hess <joeyh@debian.org> Fri, 28 Sep 2007 16:45:29 -0400 ikiwiki (2.8) unstable; urgency=low diff --git a/doc/bugs/parsing_for_WikiWords_should_only_be_done_outside_html_tags.mdwn b/doc/bugs/parsing_for_WikiWords_should_only_be_done_outside_html_tags.mdwn index 7f108ff12..44938c754 100644 --- a/doc/bugs/parsing_for_WikiWords_should_only_be_done_outside_html_tags.mdwn +++ b/doc/bugs/parsing_for_WikiWords_should_only_be_done_outside_html_tags.mdwn @@ -3,7 +3,15 @@ When having a link to e.g. http://www.chumba.com/media/Chumbawamba-EnoughIsEnoug You can see an example of the breakage on <http://wiki.debian-community.org/planets/de/> - scroll down to the Chumbawamba entry. >> There's a great workaround for this bug: Disable the ->> [[plugins/camelcase]] plugin. :-) +>> [[plugins/camelcase]] plugin. :-) I really don't recommend using that +>> plugin. _Especially_ not when aggregating third-party content as you do +>> in the example. +>> +>> Fixing this at the html parsing level would involve making ikiwiki 2 +>> times slower, not even counting the html parsing overhead, since it +>> would have to fully render pages in the "scan" pass. +>> +>> All I can do is improve the regexp it uses to try to avoid false +>> positives. Which I've now [[done]]. >> ->> The fix involves modifying its regexp to look for surrounding brackets. >> --[[Joey]]