]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki/Render.pm
web commit by JoshTriplett: Remove account-creation password item, now a separate...
[ikiwiki.git] / IkiWiki / Render.pm
index 7fd7daf117cc8b597a4fdc9d01f356f2071a5a75..0b7e00d9d0af606f3bd5e0483fd29bb749969f4f 100644 (file)
@@ -31,8 +31,8 @@ sub backlinks ($) { #{{{
 
        my @links;
        foreach my $p (keys %{$backlinks{$page}}) {
-               my $href=abs2rel(htmlpage($p), dirname($page));
-                       
+               my $href=urlto($p, $page);
+                
                # Trim common dir prefixes from both pages.
                my $p_trimmed=$p;
                my $page_trimmed=$page;
@@ -46,7 +46,7 @@ sub backlinks ($) { #{{{
        }
        @links = sort { $a->{page} cmp $b->{page} } @links;
 
-       return \@links, [] if @links <= $config{numbacklinks};
+       return \@links, [] if @links <= $config{numbacklinks} || ! $config{numbacklinks};
        return [@links[0..$config{numbacklinks}-1]],
               [@links[$config{numbacklinks}..$#links]];
 } #}}}
@@ -57,18 +57,14 @@ sub parentlinks ($) { #{{{
        my @ret;
        my $pagelink="";
        my $path="";
-       my $skip=1;
+       my $title=$config{wikiname};
+       
        return if $page eq 'index'; # toplevel
-       foreach my $dir (reverse split("/", $page)) {
-               if (! $skip) {
-                       $path.="../";
-                       unshift @ret, { url => $path.htmlpage($dir), page => pagetitle($dir) };
-               }
-               else {
-                       $skip=0;
-               }
+       foreach my $dir (split("/", $page)) {
+               push @ret, { url => urlto($path, $page), page => $title };
+               $path.="/".$dir;
+               $title=pagetitle($dir);
        }
-       unshift @ret, { url => length $path ? $path : ".", page => $config{wikiname} };
        return @ret;
 } #}}}
 
@@ -369,7 +365,7 @@ sub refresh () { #{{{
                                foreach my $file (keys %rendered, @del) {
                                        next if $f eq $file;
                                        my $page=pagename($file);
-                                       if (pagespec_match($page, $depends{$p}, $p)) {
+                                       if (pagespec_match($page, $depends{$p}, location => $p)) {
                                                debug(sprintf(gettext("rendering %s, which depends on %s"), $f, $page));
                                                render($f);
                                                $rendered{$f}=1;