X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/8926a3bfbe84b9628c0a441d73059029eb47300b..b1fac017904dc2e1c6327f0a0a2a2620042c0768:/IkiWiki/Render.pm diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm index a981dcb24..e6d0bc510 100644 --- a/IkiWiki/Render.pm +++ b/IkiWiki/Render.pm @@ -160,12 +160,22 @@ sub postprocess_html_inline { #{{{ } $inlinepages{$parentpage}=$params{pages}; + my $ret=""; + + if (exists $params{rootpage}) { + my $formtemplate=HTML::Template->new(blind_cache => 1, + filename => "$config{templatedir}/blogpost.tmpl"); + $formtemplate->param(cgiurl => $config{cgiurl}); + $formtemplate->param(rootpage => $params{rootpage}); + my $form=$formtemplate->output; + $ret.=$form; + } + my $template=HTML::Template->new(blind_cache => 1, filename => (($params{archive} eq "no") ? "$config{templatedir}/inlinepage.tmpl" : "$config{templatedir}/inlinepagetitle.tmpl")); - my $ret=""; foreach my $page (blog_list($params{pages}, $params{show})) { next if $page eq $parentpage; $template->param(pagelink => htmllink($parentpage, $page)); @@ -305,9 +315,9 @@ sub check_overwrite ($$) { #{{{ } #}}} sub mtime ($) { #{{{ - my $page=shift; + my $file=shift; - return (stat($page))[9]; + return (stat($file))[9]; } #}}} sub findlinks ($$) { #{{{ @@ -408,7 +418,8 @@ sub refresh () { #{{{ push @add, $file; $links{$page}=[]; $pagesources{$page}=$file; - $pagectime{$page}=time unless exists $pagectime{$page}; + $pagectime{$page}=mtime("$config{srcdir}/$file") + unless exists $pagectime{$page}; } } my @del; @@ -463,20 +474,24 @@ FILE: foreach my $file (@files) { # problem is the backlinks could be wrong in the first pass render # above if (%rendered || @del) { + foreach my $f (@files) { + my $p=pagename($f); + if (exists $inlinepages{$p}) { + foreach my $file (keys %rendered, @del) { + my $page=pagename($file); + if (globlist_match($page, $inlinepages{$p})) { + debug("rendering $f, which inlines $page"); + render($f); + last; + } + } + } + } + my %linkchanged; foreach my $file (keys %rendered, @del) { my $page=pagename($file); - foreach my $f (@files) { - my $p=pagename($f); - if (exists $inlinepages{$p} && - globlist_match($page, $inlinepages{$p})) { - debug("rendering $f, which inlines $page"); - render($f); - next; - } - } - if (exists $links{$page}) { foreach my $link (map { bestlink($page, $_) } @{$links{$page}}) { if (length $link &&