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.master
parent
236c46a3f7
commit
a9fc30b19c
|
@ -14,7 +14,7 @@ use vars qw{%config %links %oldlinks %pagemtime %pagectime %pagecase
|
|||
%pagestate %wikistate %renderedfiles %oldrenderedfiles
|
||||
%pagesources %delpagesources %destsources %depends %depends_simple
|
||||
@mass_depends %hooks %forcerebuild %loaded_plugins %typedlinks
|
||||
%oldtypedlinks %autofiles @underlayfiles $lastrev};
|
||||
%oldtypedlinks %autofiles @underlayfiles $lastrev $phase};
|
||||
|
||||
use Exporter q{import};
|
||||
our @EXPORT = qw(hook debug error htmlpage template template_depends
|
||||
|
@ -34,6 +34,11 @@ our $DEPEND_CONTENT=1;
|
|||
our $DEPEND_PRESENCE=2;
|
||||
our $DEPEND_LINKS=4;
|
||||
|
||||
# Phases of processing.
|
||||
sub PHASE_SCAN () { 0 }
|
||||
sub PHASE_RENDER () { 1 }
|
||||
$phase = PHASE_SCAN;
|
||||
|
||||
# Optimisation.
|
||||
use Memoize;
|
||||
memoize("abs2rel");
|
||||
|
|
|
@ -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);
|
||||
|
@ -879,6 +881,9 @@ 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\/?//;
|
||||
|
|
|
@ -22,6 +22,8 @@ foreach my $file (@$files) {
|
|||
$pagesources{$page}=$file; # used by po plugin functions
|
||||
}
|
||||
|
||||
$IkiWiki::phase = IkiWiki::PHASE_RENDER;
|
||||
|
||||
foreach my $lang (@{$config{po_slave_languages}}) {
|
||||
my ($ll, $name)=IkiWiki::Plugin::po::splitlangpair($lang);
|
||||
$config{destdir}="../underlays/locale/$ll";
|
||||
|
|
Loading…
Reference in New Issue