diff options
Diffstat (limited to 'IkiWiki/Plugin')
-rw-r--r-- | IkiWiki/Plugin/link.pm | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/IkiWiki/Plugin/link.pm b/IkiWiki/Plugin/link.pm index 51afaec9e..e20109888 100644 --- a/IkiWiki/Plugin/link.pm +++ b/IkiWiki/Plugin/link.pm @@ -11,6 +11,7 @@ sub import { #{{{ hook(type => "checkconfig", id => "link", call => \&checkconfig); hook(type => "linkify", id => "link", call => \&linkify); hook(type => "scan", id => "link", call => \&scan); + hook(type => "renamepage", id => "link", call => \&renamepage); } # }}} sub checkconfig () { #{{{ @@ -87,13 +88,17 @@ sub renamepage (@) { #{{{ my $new=$params{newpage}; $params{content} =~ s{(?<!\\)$link_regexp}{ - my $link=$2; + my $linktext=$2; + my $link=$linktext; if (bestlink($page, $2) eq $old) { - if (index($2, "/") == 0) { - $link="/$new"; + $link=$new; + if ($linktext =~ m/\/*?[A-Z]/) { + # preserve leading cap + $link=ucfirst($link); } - else { - $link=$new; + if (index($linktext, "/") == 0) { + # absolute link + $link="/$link"; } } defined $1 |