* camelcase: Convert to use new linkify and scan hooks rather than the old
hack.master
parent
4763514861
commit
1de1fb15a0
|
@ -6,32 +6,47 @@ use warnings;
|
|||
use strict;
|
||||
use IkiWiki 2.00;
|
||||
|
||||
# This regexp is based on the one in Text::WikiFormat.
|
||||
my $link_regexp=qr{
|
||||
(?<![^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
|
||||
)
|
||||
}x;
|
||||
|
||||
sub import { #{{{
|
||||
hook(type => "filter", id => "camelcase", call => \&filter);
|
||||
hook(type => "linkify", id => "camelcase", call => \&linkify);
|
||||
hook(type => "scan", id => "camelcase", call => \&scan);
|
||||
} # }}}
|
||||
|
||||
sub filter (@) { #{{{
|
||||
sub linkify (@) { #{{{
|
||||
my %params=@_;
|
||||
my $page=$params{page};
|
||||
my $destpage=$params{destpage};
|
||||
|
||||
# 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;
|
||||
$params{content}=~s{$link_regexp}{
|
||||
htmllink($page, $destpage, IkiWiki::linkpage($1))
|
||||
}eg;
|
||||
|
||||
return $params{content};
|
||||
} #}}}
|
||||
|
||||
sub scan (@) { #{{{
|
||||
my %params=@_;
|
||||
my $page=$params{page};
|
||||
my $content=$params{content};
|
||||
|
||||
while ($content =~ /$link_regexp/g) {
|
||||
push @{$links{$page}}, IkiWiki::linkpage($1);
|
||||
}
|
||||
}
|
||||
|
||||
1
|
||||
|
|
|
@ -18,6 +18,8 @@ ikiwiki (2.40) UNRELEASED; urgency=low
|
|||
custom, first-class types of wikilinks.
|
||||
* Move standard wikilink implementation to a new wikilink plugin, which
|
||||
will of course be enabled by default.
|
||||
* camelcase: Convert to use new linkify and scan hooks rather than the old
|
||||
hack.
|
||||
|
||||
-- Josh Triplett <josh@freedesktop.org> Sun, 10 Feb 2008 13:18:58 -0800
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2008-02-11 22:46-0500\n"
|
||||
"POT-Creation-Date: 2008-02-11 23:03-0500\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
Loading…
Reference in New Issue