X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/5951c1dc8220cbc09e6bdda09bae92aa4e3236e3..b1fac017904dc2e1c6327f0a0a2a2620042c0768:/IkiWiki/Render.pm?ds=sidebyside diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm index 7d2e8c4ee..e6d0bc510 100644 --- a/IkiWiki/Render.pm +++ b/IkiWiki/Render.pm @@ -159,13 +159,23 @@ sub postprocess_html_inline { #{{{ $params{show}=10; } $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)); @@ -204,7 +214,7 @@ sub genpage ($$$) { #{{{ $template->param(historyurl => $u); } - if ($config{rss}) { + if ($config{rss} && $inlinepages{$page}) { $template->param(rssurl => rsspage($page)); } @@ -238,7 +248,7 @@ sub absolute_urls ($$) { #{{{ $content=~s/ $gen_blog); - # Regular page gets a feed that is updated every time the - # page is changed, so the mtime is encoded in the guid. - push @items, { - itemtitle => pagetitle(basename($page)), - itemguid => "$url?mtime=$mtime", - itemurl => $url, - itempubdate => date_822($mtime), - itemcontent => absolute_urls($content, $url), - } unless $isblog; - $template->param( title => $config{wikiname}, pageurl => $url, @@ -316,9 +315,9 @@ sub check_overwrite ($$) { #{{{ } #}}} sub mtime ($) { #{{{ - my $page=shift; + my $file=shift; - return (stat($page))[9]; + return (stat($file))[9]; } #}}} sub findlinks ($$) { #{{{ @@ -357,7 +356,7 @@ sub render ($) { #{{{ # TODO: should really add this to renderedfiles and call # check_overwrite, as above, but currently renderedfiles # only supports listing one file per page. - if ($config{rss}) { + if ($config{rss} && exists $inlinepages{$page}) { writefile("$config{destdir}/".rsspage($page), genrss($content, $page, mtime("$config{srcdir}/$file"))); } @@ -419,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; @@ -474,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 &&