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.
master
Joey Hess 2010-06-23 14:05:57 -04:00
parent 6e67219eff
commit 82789e39aa
1 changed files with 5 additions and 3 deletions

View File

@ -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));
}
}