use warnings;
use strict;
-use IkiWiki;
+use IkiWiki 1.00;
+use IkiWiki::Render; # for displaytime
use URI;
sub import { #{{{
- IkiWiki::hook(type => "preprocess", id => "inline",
+ hook(type => "preprocess", id => "inline",
call => \&IkiWiki::preprocess_inline);
- IkiWiki::hook(type => "pagetemplate", id => "inline",
+ hook(type => "pagetemplate", id => "inline",
call => \&IkiWiki::pagetemplate_inline);
# Hook to change to do pinging since it's called late.
# This ensures each page only pings once and prevents slow
# pings interrupting page builds.
- IkiWiki::hook(type => "change", id => "inline",
+ hook(type => "change", id => "inline",
call => \&IkiWiki::pingurl);
} # }}}
push @list, $page;
}
}
- @list=sort { $pagectime{$b} <=> $pagectime{$a} } @list;
+
+ if (exists $params{sort} && $params{sort} eq 'title') {
+ @list=sort @list;
+ }
+ elsif (! exists $params{sort} || $params{sort} eq 'age') {
+ @list=sort { $pagectime{$b} <=> $pagectime{$a} } @list;
+ }
+ else {
+ return "unknown sort type $params{sort}";
+ }
+
if ($params{show} && @list > $params{show}) {
@list=@list[0..$params{show} - 1];
}
}
}
- # TODO: should really add this to renderedfiles and call
- # check_overwrite, but currently renderedfiles
- # only supports listing one file per page.
if ($config{rss} && $rss) {
+ will_render($params{page}, rsspage($params{page}));
writefile(rsspage($params{page}), $config{destdir},
genrss($desc, $params{page}, @list));
$toping{$params{page}}=1 unless $config{rebuild};
my $itemtemplate=template("rssitem.tmpl", blind_cache => 1);
my $content="";
foreach my $p (@pages) {
- next unless exists $renderedfiles{$p};
-
- my $u=URI->new(encode_utf8("$config{url}/$renderedfiles{$p}"));
+ my $u=URI->new(encode_utf8($config{url}."/".htmlpage($p)));
$itemtemplate->param(
title => pagetitle(basename($p)),