aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2006-03-10 07:27:11 +0000
committerjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2006-03-10 07:27:11 +0000
commit10b2ae520d269b051fccc1511cd1b3c162e65117 (patch)
tree3d60609a292529f69bc946f3172d06707d379682
parentd3d8890ee904982e3b1ae81c8a5f6571bfcf3eab (diff)
downloadikiwiki-10b2ae520d269b051fccc1511cd1b3c162e65117.tar
ikiwiki-10b2ae520d269b051fccc1511cd1b3c162e65117.tar.gz
pretty!
-rwxr-xr-xikiwiki16
1 files changed, 12 insertions, 4 deletions
diff --git a/ikiwiki b/ikiwiki
index f42be3b01..72b1021ec 100755
--- a/ikiwiki
+++ b/ikiwiki
@@ -218,12 +218,20 @@ sub linkbacks ($$) {
my @links;
foreach my $p (keys %links) {
+ next if bestlink($page, $p) eq $page;
if (grep { length $_ && bestlink($p, $_) eq $page } @{$links{$p}}) {
my $href=File::Spec->abs2rel(htmlpage($p), dirname($page));
- # TODO: if $p is joey/foo/bar and
- # the $page is joey/foo/baz, make the link text
- # just be "bar".
- push @links, "<a href=\"$href\">$p</a>";
+
+ # Trim common dir prefixes from both pages.
+ my $p_trimmed=$p;
+ my $page_trimmed=$page;
+ my $dir;
+ 1 while (($dir)=$page_trimmed=~m!^([^/]+/)!) &&
+ defined $dir &&
+ $p_trimmed=~s/^\Q$dir\E// &&
+ $page_trimmed=~s/^\Q$dir\E//;
+
+ push @links, "<a href=\"$href\">$p_trimmed</a>";
}
}