diff options
author | Joey Hess <joey@kitenet.net> | 2010-06-23 14:05:57 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2010-06-23 14:05:57 -0400 |
commit | 82789e39aa75a15f3f9020a6f809150d4c8a00f8 (patch) | |
tree | 25e833533ec83c86bd7046986420413185315455 /IkiWiki | |
parent | 6e67219eff9ea599e9efa8a846a4c78c76c5b008 (diff) |
bugfix: record email-like links as page links
This way, an email-like link will be a mailto until a matching page
is created, then it will link to the page. And removing the page will
convert it back to a mailto.
Diffstat (limited to 'IkiWiki')
-rw-r--r-- | IkiWiki/Plugin/link.pm | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/IkiWiki/Plugin/link.pm b/IkiWiki/Plugin/link.pm index 87e06ca89..f6c3573f7 100644 --- a/IkiWiki/Plugin/link.pm +++ b/IkiWiki/Plugin/link.pm @@ -64,21 +64,23 @@ sub checkconfig () { } } -sub is_externallink ($$;$) { +sub is_externallink ($$;$$) { my $page = shift; my $url = shift; my $anchor = shift; + my $force = shift; if (defined $anchor) { $url.="#".$anchor; } - if ($url =~ /$email_regexp/) { + if (! $force && $url =~ /$email_regexp/) { # url looks like an email address, so we assume it # is supposed to be an external link if there is no # page with that name. return (! (bestlink($page, linkpage($url)))) } + return ($url =~ /$url_regexp/) } @@ -138,7 +140,7 @@ sub scan (@) { my $content=$params{content}; while ($content =~ /(?<!\\)$link_regexp/g) { - if (! is_externallink($page, $2, $3)) { + if (! is_externallink($page, $2, $3, 1)) { add_link($page, linkpage($2)); } } |