diff options
author | joey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071> | 2007-09-28 20:50:20 +0000 |
---|---|---|
committer | joey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071> | 2007-09-28 20:50:20 +0000 |
commit | ed4b6afc9b3b43e1f7e70ff01a77472c7983a549 (patch) | |
tree | ce96eb7fc9c360b69e82409961340619f15f9c6c | |
parent | a75df2a43898bdbcdcc86cd4b3d06040a49574aa (diff) |
* camelcase: Tighten regexp to avoid false positives. WikiWords are only
linkified now if they are preceeded by whitespace.
-rw-r--r-- | IkiWiki/Plugin/camelcase.pm | 9 | ||||
-rw-r--r-- | debian/changelog | 4 | ||||
-rw-r--r-- | doc/bugs/parsing_for_WikiWords_should_only_be_done_outside_html_tags.mdwn | 12 |
3 files changed, 18 insertions, 7 deletions
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]] |