X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/6e67219eff9ea599e9efa8a846a4c78c76c5b008..dc8c9ea777e72a89ca646820a85e6a5ce4cfae48:/IkiWiki/Plugin/link.pm diff --git a/IkiWiki/Plugin/link.pm b/IkiWiki/Plugin/link.pm index 87e06ca89..1ba28eafd 100644 --- a/IkiWiki/Plugin/link.pm +++ b/IkiWiki/Plugin/link.pm @@ -7,7 +7,7 @@ use IkiWiki 3.00; my $link_regexp; -my $email_regexp = qr/^.+@.+$/; +my $email_regexp = qr/^.+@.+\..+$/; my $url_regexp = qr/^(?:[^:]+:\/\/|mailto:).*/i; sub import { @@ -73,13 +73,7 @@ sub is_externallink ($$;$) { $url.="#".$anchor; } - if ($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/) + return ($url =~ /$url_regexp|$email_regexp/) } sub externallink ($$;$) { @@ -150,9 +144,9 @@ sub renamepage (@) { my $old=$params{oldpage}; my $new=$params{newpage}; - $params{content} =~ s{(?<!\\)$link_regexp}{ - if (! is_externallink($page, $2, $3)) { - my $linktext=$2; + $params{content} =~ s{(?<!\\)($link_regexp)}{ + if (! is_externallink($page, $3, $4)) { + my $linktext=$3; my $link=$linktext; if (bestlink($page, linkpage($linktext)) eq $old) { $link=pagetitle($new, 1); @@ -167,9 +161,12 @@ sub renamepage (@) { $link="/$link"; } } - defined $1 - ? ( "[[$1|$link".($3 ? "#$3" : "")."]]" ) - : ( "[[$link". ($3 ? "#$3" : "")."]]" ) + defined $2 + ? ( "[[$2|$link".($4 ? "#$4" : "")."]]" ) + : ( "[[$link". ($4 ? "#$4" : "")."]]" ) + } + else { + $1 } }eg;