+ diff -urx .svn ikiwiki/IkiWiki/Render.pm ikidev/IkiWiki/Render.pm
+ --- ikiwiki/IkiWiki/Render.pm 2007-01-11 15:01:51.000000000 -0800
+ +++ ikidev/IkiWiki/Render.pm 2007-01-15 18:38:34.000000000 -0800
+ @@ -40,6 +40,7 @@
+ my $dir;
+ 1 while (($dir)=$page_trimmed=~m!^([^/]+/)!) &&
+ defined $dir &&
+ + $p_trimmed=~m/^\Q$dir\E(?:.)/ &&
+ $p_trimmed=~s/^\Q$dir\E// &&
+ $page_trimmed=~s/^\Q$dir\E//;
+
+ @@ -57,10 +58,18 @@
+ my $path="";
+ my $skip=1;
+ return if $page eq 'index'; # toplevel
+ - foreach my $dir (reverse split("/", $page)) {
+ + if ($page =~ m{/$}){
+ + $page =~ s{/$}{};
+ + $path="../";
+ + }
+ +
+ + while ($page =~ m!([^/]+)$!) {
+ + my $last = $1;
+ + $page =~ s!/?[^/]+$!!;
+ if (! $skip) {
+ $path.="../";
+ - unshift @ret, { url => $path.htmlpage($dir), page => pagetitle($dir) };
+ + my $target = abs2rel(htmlpage(bestlink($page, $last)), $page);
+ + unshift @ret, { url => $path.$target, page => pagetitle($last) };
+ }
+ else {
+ $skip=0;
+ diff -urx .svn ikiwiki/IkiWiki.pm ikidev/IkiWiki.pm
+ --- ikiwiki/IkiWiki.pm 2007-01-12 12:47:09.000000000 -0800
+ +++ ikidev/IkiWiki.pm 2007-01-15 16:56:58.000000000 -0800
+ @@ -185,6 +185,7 @@
+ sub basename ($) { #{{{
+ my $file=shift;
+
+ + $file=~s!/$!!;
+ $file=~s!.*/+!!;
+ return $file;