my $page=shift;
my $content=shift;
- run_hooks(postscan => sub {
- shift->(page => $page, content => $content);
+ run_hooks(indexhtml => sub {
+ shift->(page => $page, destpage => $page, content => $content);
});
my $templatefile;
}
}
- if ($actions) {
+ my @actions;
+ run_hooks(pageactions => sub {
+ push @actions, map { { action => $_ } }
+ grep { defined } shift->(page => $page);
+ });
+ $template->param(actions => \@actions);
+
+ if ($actions || @actions) {
$template->param(have_actions => 1);
}
backlinks => $backlinks,
more_backlinks => $more_backlinks,
mtime => displaytime($pagemtime{$page}),
- ctime => displaytime($pagectime{$page}),
+ ctime => displaytime($pagectime{$page}, undef, 1),
baseurl => baseurl($page),
+ html5 => $config{html5},
);
run_hooks(pagetemplate => sub {
my ($f) = $file =~ /$config{wiki_file_regexp}/; # untaint
if (! defined $f) {
warn(sprintf(gettext("skipping bad filename %s"), $file)."\n");
+ return;
}
if ($underlay) {
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;
- my $mass_reason;
- foreach my $p ("page.tmpl", keys %{$depends_simple{""}}) {
- $mass_reason=$p if $rendered{$p};
+ 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 = $mass_reason;
+ my $reason = undef;
if (exists $depends_simple{$p} && ! defined $reason) {
foreach my $d (keys %{$depends_simple{$p}}) {
render_backlinks($backlinkchanged);
remove_unrendered();
- if (@$del) {
- run_hooks(delete => sub { shift->(@$del) });
+ if (@$del || @$internal_del) {
+ run_hooks(delete => sub { shift->(@$del, @$internal_del) });
}
if (%rendered) {
run_hooks(change => sub { shift->(keys %rendered) });