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
parent
6e67219eff
commit
82789e39aa
|
@ -64,21 +64,23 @@ sub checkconfig () {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sub is_externallink ($$;$) {
|
sub is_externallink ($$;$$) {
|
||||||
my $page = shift;
|
my $page = shift;
|
||||||
my $url = shift;
|
my $url = shift;
|
||||||
my $anchor = shift;
|
my $anchor = shift;
|
||||||
|
my $force = shift;
|
||||||
|
|
||||||
if (defined $anchor) {
|
if (defined $anchor) {
|
||||||
$url.="#".$anchor;
|
$url.="#".$anchor;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($url =~ /$email_regexp/) {
|
if (! $force && $url =~ /$email_regexp/) {
|
||||||
# url looks like an email address, so we assume it
|
# url looks like an email address, so we assume it
|
||||||
# is supposed to be an external link if there is no
|
# is supposed to be an external link if there is no
|
||||||
# page with that name.
|
# page with that name.
|
||||||
return (! (bestlink($page, linkpage($url))))
|
return (! (bestlink($page, linkpage($url))))
|
||||||
}
|
}
|
||||||
|
|
||||||
return ($url =~ /$url_regexp/)
|
return ($url =~ /$url_regexp/)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -138,7 +140,7 @@ sub scan (@) {
|
||||||
my $content=$params{content};
|
my $content=$params{content};
|
||||||
|
|
||||||
while ($content =~ /(?<!\\)$link_regexp/g) {
|
while ($content =~ /(?<!\\)$link_regexp/g) {
|
||||||
if (! is_externallink($page, $2, $3)) {
|
if (! is_externallink($page, $2, $3, 1)) {
|
||||||
add_link($page, linkpage($2));
|
add_link($page, linkpage($2));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue