X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/9ec9d6901d444af48555abf7b4c26d1965c46017..db029393f61b358576d21536554ddabcffaef90c:/IkiWiki/Plugin/camelcase.pm?ds=inline

diff --git a/IkiWiki/Plugin/camelcase.pm b/IkiWiki/Plugin/camelcase.pm
index 7881becd5..088447d6b 100644
--- a/IkiWiki/Plugin/camelcase.pm
+++ b/IkiWiki/Plugin/camelcase.pm
@@ -4,7 +4,7 @@ package IkiWiki::Plugin::camelcase;
 
 use warnings;
 use strict;
-use IkiWiki 2.00;
+use IkiWiki 3.00;
 
 # This regexp is based on the one in Text::WikiFormat.
 my $link_regexp=qr{
@@ -22,40 +22,52 @@ my $link_regexp=qr{
 	)
 }x;
 
-sub import { #{{{
+sub import {
 	hook(type => "getsetup", id => "camelcase", call => \&getsetup);
 	hook(type => "linkify", id => "camelcase", call => \&linkify);
 	hook(type => "scan", id => "camelcase", call => \&scan);
-} # }}}
+}
 
-sub getsetup () { #{{{
+sub getsetup () {
 	return
 		plugin => {
 			safe => 1,
 			rebuild => undef,
-		};
-} #}}}
+		},
+		camelcase_ignore => {
+			type => "string",
+			example => [],
+			description => "list of words to not turn into links",
+			safe => 1,
+			rebuild => undef, # might change links
+		},
+}
 
-sub linkify (@) { #{{{
+sub linkify (@) {
 	my %params=@_;
 	my $page=$params{page};
 	my $destpage=$params{destpage};
 
 	$params{content}=~s{$link_regexp}{
-		htmllink($page, $destpage, linkpage($1))
+		ignored($1) ? $1 : htmllink($page, $destpage, linkpage($1))
 	}eg;
 
 	return $params{content};
-} #}}}
+}
 
-sub scan (@) { #{{{
+sub scan (@) {
         my %params=@_;
         my $page=$params{page};
         my $content=$params{content};
 
 	while ($content =~ /$link_regexp/g) {
-		push @{$links{$page}}, linkpage($1);
+		add_link($page, linkpage($1)) unless ignored($1)
 	}
 }
 
+sub ignored ($) {
+	my $word=lc shift;
+	grep { $word eq lc $_ } @{$config{'camelcase_ignore'}}
+}
+
 1