aboutsummaryrefslogtreecommitdiff
path: root/IkiWiki
diff options
context:
space:
mode:
authorSimon McVittie <smcv@debian.org>2015-06-08 23:20:22 +0100
committerSimon McVittie <smcv@debian.org>2015-06-08 23:47:14 +0100
commit5fd863b5b05449669ec56c6798d836e3302386e2 (patch)
treed7e87e8cbd66cbc20a666a1ceb1eaddd67f3f2ad /IkiWiki
parent983d6b097629fe8e2380250279c51343dce69b2e (diff)
downloadikiwiki-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.pm5
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);