diff options
author | joey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071> | 2007-06-01 23:40:43 +0000 |
---|---|---|
committer | joey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071> | 2007-06-01 23:40:43 +0000 |
commit | 78323806ee775b8f0384255ba7cecf1e74e75e4f (patch) | |
tree | 9eab82dba37cc4642f52458d227317e520c1c893 /IkiWiki/Plugin | |
parent | 348a82b7a45997b979cf75444a9b1091215c60ea (diff) |
* Explode some of the more insane regexps.
Diffstat (limited to 'IkiWiki/Plugin')
-rw-r--r-- | IkiWiki/Plugin/camelcase.pm | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/IkiWiki/Plugin/camelcase.pm b/IkiWiki/Plugin/camelcase.pm index 29d22b0dd..dc89f1b90 100644 --- a/IkiWiki/Plugin/camelcase.pm +++ b/IkiWiki/Plugin/camelcase.pm @@ -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}; } #}}} |