]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki/Render.pm
oops
[ikiwiki.git] / IkiWiki / Render.pm
index c5d885810f1ff1041308d428e8761e3589849ed6..e77379a65e528114d49381c9d8c2e1286bc1e59e 100644 (file)
@@ -30,10 +30,9 @@ sub backlinks ($) { #{{{
        calculate_backlinks();
 
        my @links;
-       return unless $backlinks{$page};
        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;
@@ -45,8 +44,11 @@ sub backlinks ($) { #{{{
                               
                push @links, { url => $href, page => pagetitle($p_trimmed) };
        }
+       @links = sort { $a->{page} cmp $b->{page} } @links;
 
-       return sort { $a->{page} cmp $b->{page} } @links;
+       return \@links, [] if @links <= $config{numbacklinks} || ! $config{numbacklinks};
+       return [@links[0..$config{numbacklinks}-1]],
+              [@links[$config{numbacklinks}..$#links]];
 } #}}}
 
 sub parentlinks ($) { #{{{
@@ -55,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;
 } #}}}
 
@@ -107,6 +105,8 @@ sub genpage ($$$) { #{{{
                $template->param(have_actions => 1);
        }
 
+       my ($backlinks, $more_backlinks)=backlinks($page);
+
        $template->param(
                title => $page eq 'index' 
                        ? $config{wikiname} 
@@ -114,7 +114,8 @@ sub genpage ($$$) { #{{{
                wikiname => $config{wikiname},
                parentlinks => [parentlinks($page)],
                content => $content,
-               backlinks => [backlinks($page)],
+               backlinks => $backlinks,
+               more_backlinks => $more_backlinks,
                mtime => displaytime($mtime),
                baseurl => baseurl($page),
        );