aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Hess <joey@kitenet.net>2010-06-23 14:05:57 -0400
committerJoey Hess <joey@kitenet.net>2010-06-23 14:05:57 -0400
commit82789e39aa75a15f3f9020a6f809150d4c8a00f8 (patch)
tree25e833533ec83c86bd7046986420413185315455
parent6e67219eff9ea599e9efa8a846a4c78c76c5b008 (diff)
downloadikiwiki-82789e39aa75a15f3f9020a6f809150d4c8a00f8.tar
ikiwiki-82789e39aa75a15f3f9020a6f809150d4c8a00f8.tar.gz
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.
-rw-r--r--IkiWiki/Plugin/link.pm8
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));
}
}