X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/2e11f8a81f254d3ef971a8b8ae8007d3518b1383..c730d55e2e04b4059b15cc55b00d976abfa7fad2:/IkiWiki/Plugin/inline.pm diff --git a/IkiWiki/Plugin/inline.pm b/IkiWiki/Plugin/inline.pm index d49993e5f..fc1dfdac3 100644 --- a/IkiWiki/Plugin/inline.pm +++ b/IkiWiki/Plugin/inline.pm @@ -67,6 +67,7 @@ sub preprocess_inline (@) { #{{{ my $atom=($config{atom} && exists $params{atom}) ? yesno($params{atom}) : $config{atom}; my $quick=exists $params{quick} ? yesno($params{quick}) : 0; my $feeds=exists $params{feeds} ? yesno($params{feeds}) : !$quick; + $feeds=0 if $params{preview}; if (! exists $params{show} && ! $archive) { $params{show}=10; } @@ -95,6 +96,9 @@ sub preprocess_inline (@) { #{{{ if (exists $params{sort} && $params{sort} eq 'title') { @list=sort @list; } + elsif (exists $params{sort} && $params{sort} eq 'mtime') { + @list=sort { $pagemtime{$b} <=> $pagemtime{$a} } @list; + } elsif (! exists $params{sort} || $params{sort} eq 'age') { @list=sort { $pagectime{$b} <=> $pagectime{$a} } @list; } @@ -115,16 +119,22 @@ sub preprocess_inline (@) { #{{{ } add_depends($params{page}, $params{pages}); + # Explicitly add all currently displayed pages as dependencies, so + # that if they are removed or otherwise changed, the inline will be + # sure to be updated. + add_depends($params{page}, join(" or ", @list)); - my $rssurl=rsspage(basename($params{page})); - my $atomurl=atompage(basename($params{page})); + my $rssurl=basename(rsspage($params{page})); + my $atomurl=basename(atompage($params{page})); my $ret=""; - if (exists $params{rootpage} && $config{cgiurl}) { + if ($config{cgiurl} && (exists $params{rootpage} || + (exists $params{postform} && yesno($params{postform})))) { # Add a blog post form, with feed buttons. my $formtemplate=template("blogpost.tmpl", blind_cache => 1); $formtemplate->param(cgiurl => $config{cgiurl}); - $formtemplate->param(rootpage => $params{rootpage}); + $formtemplate->param(rootpage => + exists $params{rootpage} ? $params{rootpage} : $params{page}); $formtemplate->param(rssurl => $rssurl) if $feeds && $rss; $formtemplate->param(atomurl => $atomurl) if $feeds && $atom; $ret.=$formtemplate->output; @@ -154,13 +164,7 @@ sub preprocess_inline (@) { #{{{ my $content=get_inline_content($page, $params{destpage}); $template->param(content => $content); } - # Don't use htmllink because this way the - # title is separate and can be overridden by - # other plugins. - my $link=bestlink($params{page}, $page); - $link=htmlpage($link) if defined $type; - $link=abs2rel($link, dirname($params{destpage})); - $template->param(pageurl => $link); + $template->param(pageurl => urlto(bestlink($params{page}, $page), $params{destpage})); $template->param(title => pagetitle(basename($page))); $template->param(ctime => displaytime($pagectime{$page})); @@ -183,7 +187,7 @@ sub preprocess_inline (@) { #{{{ } if (length $config{cgiurl} && defined $type) { $template->param(have_actions => 1); - $template->param(editurl => cgiurl(do => "edit", page => $page)); + $template->param(editurl => cgiurl(do => "edit", page => pagetitle($page, 1))); } } @@ -212,15 +216,17 @@ sub preprocess_inline (@) { #{{{ } if ($rss) { - will_render($params{page}, rsspage($params{page})); - writefile(rsspage($params{page}), $config{destdir}, + my $rssp=rsspage($params{page}); + will_render($params{page}, $rssp); + writefile($rssp, $config{destdir}, genfeed("rss", $rssurl, $desc, $params{page}, @list)); $toping{$params{page}}=1 unless $config{rebuild}; $feedlinks{$params{destpage}}=qq{}; } if ($atom) { - will_render($params{page}, atompage($params{page})); - writefile(atompage($params{page}), $config{destdir}, + my $atomp=atompage($params{page}); + will_render($params{page}, $atomp); + writefile($atomp, $config{destdir}, genfeed("atom", $atomurl, $desc, $params{page}, @list)); $toping{$params{page}}=1 unless $config{rebuild}; $feedlinks{$params{destpage}}=qq{}; @@ -296,15 +302,11 @@ sub absolute_urls ($$) { #{{{ } #}}} sub rsspage ($) { #{{{ - my $page=shift; - - return $page.".rss"; + return targetpage(shift, "rss"); } #}}} sub atompage ($) { #{{{ - my $page=shift; - - return $page.".atom"; + return targetpage(shift, "atom"); } #}}} sub genfeed ($$$$@) { #{{{