* camelcase: Tighten regexp to avoid false positives. WikiWords are only

linkified now if they are preceeded by whitespace.
master
joey 2007-09-28 20:50:20 +00:00
parent a75df2a438
commit ed4b6afc9b
3 changed files with 18 additions and 7 deletions

View File

@ -16,10 +16,11 @@ sub filter (@) { #{{{
# Make CamelCase links work by promoting them to fullfledged # Make CamelCase links work by promoting them to fullfledged
# WikiLinks. This regexp is based on the one in Text::WikiFormat. # WikiLinks. This regexp is based on the one in Text::WikiFormat.
$params{content}=~s{ $params{content}=~s{
(?<![[|"/>=]) # try to avoid expanding non-links (?<![^A-Za-z0-9\s]) # try to avoid expanding non-links
# with a zero width negative lookbehind for # with a zero width negative
# characters that suggest it's not a link # lookbehind for characters that
\b # word boundry # suggest it's not a link
\b # word boundry
( (
(?: (?:
[A-Z] # Uppercase start [A-Z] # Uppercase start

4
debian/changelog vendored
View File

@ -19,8 +19,10 @@ ikiwiki (2.9) UNRELEASED; urgency=low
* Don't allow whitespace in link text in a wikilink. This was still * 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 allowed by the regexp in one case though not documented to work, and
was ambiguous with preprocessor directives. 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 ikiwiki (2.8) unstable; urgency=low

View File

@ -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. 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 >> 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]] >> --[[Joey]]