diff options
author | Simon McVittie <smcv@debian.org> | 2015-06-08 23:20:22 +0100 |
---|---|---|
committer | Simon McVittie <smcv@debian.org> | 2015-06-08 23:47:14 +0100 |
commit | 5fd863b5b05449669ec56c6798d836e3302386e2 (patch) | |
tree | d7e87e8cbd66cbc20a666a1ceb1eaddd67f3f2ad /IkiWiki | |
parent | 983d6b097629fe8e2380250279c51343dce69b2e (diff) | |
download | ikiwiki-5fd863b5b05449669ec56c6798d836e3302386e2.tar ikiwiki-5fd863b5b05449669ec56c6798d836e3302386e2.tar.gz |
Revert "Assume that every page has been scanned by the time the scan phase ends"
This reverts commit c04a26f3e70d654ccec5542daf8425e44cb5bac8, which
turns out to break the templatebody directive: readtemplate() relies
on scan() populating %templates, but if scan() is a no-op after
leaving the scan phase, we can't rely on that.
The assumption made by skipping scan() after the end of the render phase
is that everything that comes from a scan is already in the index.
However, we don't really want to put template bodies in the index:
that would force us to load and save them on every refresh, and
redundantly persist them to disk.
Test-case:
% make clean
% ./Makefile.PL
% make
% grep -E '<div class="notebox">|Use this template to' html/sandbox.html
% touch doc/sandbox/New_blog_entry.mdwn # sandbox inlines this
% make
% grep -E '<div class="notebox">|Use this template to' html/sandbox.html
Good result: html/sandbox.html contains <div class="notebox"> both times
Bad result: html/sandbox.html contains "Use this template to..." the
second time
Diffstat (limited to 'IkiWiki')
-rw-r--r-- | IkiWiki/Render.pm | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm index c1a3dcbf2..632ec980b 100644 --- a/IkiWiki/Render.pm +++ b/IkiWiki/Render.pm @@ -155,7 +155,7 @@ sub genpage ($$) { sub scan ($) { my $file=shift; - return if $phase > PHASE_SCAN || $scanned{$file}; + return if $scanned{$file}; $scanned{$file}=1; debug(sprintf(gettext("scanning %s"), $file)); @@ -886,9 +886,6 @@ sub refresh () { # At this point it becomes OK to start matching pagespecs. $phase = PHASE_RENDER; - # Save some memory: we no longer need to keep track of which pages - # we've scanned - %scanned = (); remove_del(@$del, @$internal_del); |