blob: 845a516ee5e0d02d4080e08fab386d009db31c52 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
#!/usr/bin/perl
# CamelCase links
package IkiWiki::Plugin::camelcase;
use warnings;
use strict;
use IkiWiki 2.00;
sub import { #{{{
hook(type => "filter", id => "camelcase", call => \&filter);
} # }}}
sub filter (@) { #{{{
my %params=@_;
# Make CamelCase links work by promoting them to fullfledged
# WikiLinks. This regexp is based on the one in Text::WikiFormat.
$params{content}=~s{
(?<![^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
[a-z0-9] # followed by lowercase
\w* # and rest of word
)
{2,} # repeated twice
)
}{[[$1]]}gx;
return $params{content};
} #}}}
1
|