X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/7ba4a844a8b98395774298296c309c613a68d3dd..43ede4be2e82dd07e8689c9ef7029ed7d3adc5bb:/IkiWiki/Plugin/inline.pm diff --git a/IkiWiki/Plugin/inline.pm b/IkiWiki/Plugin/inline.pm index 6661ed215..c7cafee12 100644 --- a/IkiWiki/Plugin/inline.pm +++ b/IkiWiki/Plugin/inline.pm @@ -4,18 +4,19 @@ package IkiWiki::Plugin::inline; 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); } # }}} @@ -58,7 +59,17 @@ sub preprocess_inline (@) { #{{{ 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]; } @@ -143,10 +154,8 @@ sub preprocess_inline (@) { #{{{ } } - # 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}; @@ -222,9 +231,7 @@ sub genrss ($$@) { #{{{ 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)),