X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/dae0f48e91304afcb6ebe0936360e51b22a56548..b72780e70b54bef4fd7fa52a3d2f221b9b4a46d4:/IkiWiki/Plugin/camelcase.pm?ds=inline diff --git a/IkiWiki/Plugin/camelcase.pm b/IkiWiki/Plugin/camelcase.pm index 0bb35b6e2..dc89f1b90 100644 --- a/IkiWiki/Plugin/camelcase.pm +++ b/IkiWiki/Plugin/camelcase.pm @@ -2,9 +2,9 @@ # CamelCase links package IkiWiki::Plugin::camelcase; -use IkiWiki; use warnings; use strict; +use IkiWiki 2.00; sub import { #{{{ hook(type => "filter", id => "camelcase", call => \&filter); @@ -15,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}; } #}}}