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]]