X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/d9c118dbf1753abcbf081f532aecfe8cb6ce7de7..6cc5d22071f7dd8910fadba6b6349d70a7875bf6:/IkiWiki/Plugin/camelcase.pm diff --git a/IkiWiki/Plugin/camelcase.pm b/IkiWiki/Plugin/camelcase.pm index 0934b27c2..dc89f1b90 100644 --- a/IkiWiki/Plugin/camelcase.pm +++ b/IkiWiki/Plugin/camelcase.pm @@ -4,9 +4,10 @@ package IkiWiki::Plugin::camelcase; use warnings; use strict; +use IkiWiki 2.00; sub import { #{{{ - IkiWiki::hook(type => "filter", id => "camelcase", call => \&filter); + hook(type => "filter", id => "camelcase", call => \&filter); } # }}} sub filter (@) { #{{{ @@ -14,7 +15,20 @@ 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#(?=])\b((?:[A-Z][a-z0-9]\w*){2,})#[[$1]]#g; + $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-Z] # Uppercase start + [a-z0-9] # followed by lowercase + \w* # and rest of word + ) + {2,} # repeated twice + ) + }{[[$1]]}gx; return $params{content}; } #}}}