X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/72c53650ad4a708493880daa75cdda9d056fc75e..abc5919087adc30448e872dd6c394004f427aef4:/IkiWiki/Render.pm diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm index 37383384d..5fd0dea0d 100644 --- a/IkiWiki/Render.pm +++ b/IkiWiki/Render.pm @@ -44,11 +44,7 @@ sub backlinks ($) { #{{{ push @links, { url => $href, page => pagetitle($p_trimmed) }; } - @links = 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]]; + return @links; } #}}} sub parentlinks ($) { #{{{ @@ -73,7 +69,15 @@ sub genpage ($$$) { #{{{ my $content=shift; my $mtime=shift; - my $template=template("page.tmpl", blind_cache => 1); + my $templatefile; + run_hooks(templatefile => sub { + return if defined $templatefile; + my $file=shift->(page => $page); + if (defined $file && defined template_file($file)) { + $templatefile=$file; + } + }); + my $template=template(defined $templatefile ? $templatefile : 'page.tmpl', blind_cache => 1); my $actions=0; if (length $config{cgiurl}) { @@ -105,7 +109,16 @@ sub genpage ($$$) { #{{{ $template->param(have_actions => 1); } - my ($backlinks, $more_backlinks)=backlinks($page); + my @backlinks=sort { $a->{page} cmp $b->{page} } backlinks($page); + my ($backlinks, $more_backlinks); + if (@backlinks <= $config{numbacklinks} || ! $config{numbacklinks}) { + $backlinks=\@backlinks; + $more_backlinks=[]; + } + else { + $backlinks=[@backlinks[0..$config{numbacklinks}-1]]; + $more_backlinks=[@backlinks[$config{numbacklinks}..$#backlinks]]; + } $template->param( title => $page eq 'index' @@ -154,7 +167,7 @@ sub scan ($) { #{{{ # Always needs to be done, since filters might add links # to the content. - $content=filter($page, $content); + $content=filter($page, $page, $content); my @links; while ($content =~ /(? sub { shift->(\@needsbuild) }); - # scan and rendder files + # scan and render files foreach my $file (@needsbuild) { debug(sprintf(gettext("scanning %s"), $file)); scan($file); @@ -449,7 +467,7 @@ sub commandline_render () { #{{{ my $content=readfile($srcfile); my $page=pagename($file); $pagesources{$page}=$file; - $content=filter($page, $content); + $content=filter($page, $page, $content); $content=preprocess($page, $page, $content); $content=linkify($page, $page, $content); $content=htmlize($page, $type, $content);