From a9fc30b19cfb68c1bd326e0088a677fc87c7dca5 Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Wed, 5 Mar 2014 10:11:04 +0000 Subject: Track whether we're in the scan or render phase In the scan phase, it's too early to match pagespecs or sort pages; in the render phase, both of those are OK. It would be possible to add phases later, renumbering them if necessary to maintain numerical order. --- IkiWiki/Render.pm | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'IkiWiki/Render.pm') diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm index 9e93534c6..c88de1e8e 100644 --- a/IkiWiki/Render.pm +++ b/IkiWiki/Render.pm @@ -827,6 +827,8 @@ sub gen_autofile ($$$) { } sub refresh () { + $phase = PHASE_SCAN; + srcdir_check(); run_hooks(refresh => sub { shift->() }); my ($files, $pages, $new, $internal_new, $del, $internal_del, $changed, $internal_changed); @@ -878,7 +880,10 @@ sub refresh () { } calculate_links(); - + + # At this point it becomes OK to start matching pagespecs. + $phase = PHASE_RENDER; + remove_del(@$del, @$internal_del); foreach my $file (@$changed) { @@ -942,6 +947,10 @@ sub commandline_render () { loadindex(); unlockwiki(); + # This function behaves as though it's in the render phase; + # all other files are assumed to have been scanned last time. + $phase = PHASE_RENDER; + my $srcfile=possibly_foolish_untaint($config{render}); my $file=$srcfile; $file=~s/\Q$config{srcdir}\E\/?//; -- cgit v1.2.3