X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/2f22ee85e547dfe408fc0ec520aed6a6e137e136..052887296570bd8e4750862293fd36424f153fbd:/IkiWiki/Render.pm diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm index a824ba539..f9fbc801f 100644 --- a/IkiWiki/Render.pm +++ b/IkiWiki/Render.pm @@ -62,8 +62,8 @@ sub genpage ($$) { 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; @@ -84,19 +84,14 @@ sub genpage ($$) { $template=template('page.tmpl', blind_cache => 1); } - my $actions=0; + my $actions=0; if (length $config{cgiurl}) { if (IkiWiki->can("cgi_editpage")) { $template->param(editurl => cgiurl(do => "edit", page => $page)); $actions++; } - if (exists $hooks{auth}) { - $template->param(prefsurl => cgiurl(do => "prefs")); - $actions++; - } } - if (defined $config{historyurl} && length $config{historyurl}) { my $u=$config{historyurl}; $u=~s/\[\[file\]\]/$pagesources{$page}/g; @@ -111,17 +106,10 @@ sub genpage ($$) { $actions++; } } - - my @actions; - run_hooks(pageactions => sub { - push @actions, map { { action => $_ } } - grep { defined } shift->(page => $page); - }); - $template->param(actions => \@actions); - - if ($actions || @actions) { + if ($actions) { $template->param(have_actions => 1); } + templateactions($template, $page); my @backlinks=sort { $a->{page} cmp $b->{page} } backlinks($page); my ($backlinks, $more_backlinks); @@ -321,6 +309,7 @@ sub find_src_files () { my ($f) = $file =~ /$config{wiki_file_regexp}/; # untaint if (! defined $f) { warn(sprintf(gettext("skipping bad filename %s"), $file)."\n"); + return; } if ($underlay) { @@ -453,6 +442,7 @@ sub remove_del (@) { } delete $pagecase{lc $page}; + $delpagesources{$page}=$pagesources{$page}; delete $pagesources{$page}; } } @@ -640,7 +630,7 @@ sub render_dependent ($$$$$$$) { # only consider internal files # if the page explicitly depends # on such files - my $internal_dep=$dep =~ /internal\(/; + my $internal_dep=$dep =~ /(?:internal|comment|comment_pending)\(/; my $in=sub { my $list=shift; @@ -799,8 +789,8 @@ sub refresh () { 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) });