$templatefile=$file;
}
});
- my $template=template(defined $templatefile ? $templatefile : 'page.tmpl', blind_cache => 1);
+ my $template;
+ if (defined $templatefile) {
+ $template=template_depends($templatefile, $page,
+ blind_cache => 1);
+ }
+ else {
+ # no explicit depends as special case
+ $template=template('page.tmpl',
+ blind_cache => 1);
+ }
my $actions=0;
if (length $config{cgiurl}) {
my @del;
my @internal_del;
- foreach my $page (keys %pagemtime) {
+ foreach my $page (keys %pagesources) {
if (! $pages->{$page}) {
if (isinternal($page)) {
push @internal_del, $pagesources{$page};
my %lc_changed = map { lc(pagename($_)) => 1 } @changed;
my %lc_exists_changed = map { lc(pagename($_)) => 1 } @exists_changed;
+
+ foreach my $p ("templates/page.tmpl", keys %{$depends_simple{""}}) {
+ if ($rendered{$p} || grep { $_ eq $p } @$del) {
+ foreach my $f (@$files) {
+ next if $rendered{$f};
+ render($f, sprintf(gettext("building %s, which depends on %s"), $f, $p));
+ }
+ return 0;
+ }
+ }
foreach my $f (@$files) {
next if $rendered{$f};
my $p=pagename($f);
my $reason = undef;
-
- if (exists $depends_simple{$p}) {
+
+ if (exists $depends_simple{$p} && ! defined $reason) {
foreach my $d (keys %{$depends_simple{$p}}) {
if (($depends_simple{$p}{$d} & $IkiWiki::DEPEND_CONTENT &&
$lc_changed{$d})
foreach my $file (@$new, @$del) {
render_linkers($file);
}
-
+
if (@$changed || @$internal_changed ||
@$del || @$internal_del || @$internal_new) {
1 while render_dependent($files, $new, $internal_new,