X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/35668b87d3247a7de6c4dbb9edd7e0d909603524..3cb1c8fa3b1fac58f8a84deef9b72b334c17c97a:/IkiWiki/Render.pm diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm index 8a79119cd..cb92d1ade 100644 --- a/IkiWiki/Render.pm +++ b/IkiWiki/Render.pm @@ -68,7 +68,7 @@ sub genpage ($$) { #{{{ $actions++; } - if (length $config{historyurl}) { + if (defined $config{historyurl} && length $config{historyurl}) { my $u=$config{historyurl}; $u=~s/\[\[file\]\]/$pagesources{$page}/g; $template->param(historyurl => $u); @@ -117,6 +117,10 @@ sub genpage ($$) { #{{{ }); $content=$template->output; + + run_hooks(postscan => sub { + shift->(page => $page, content => $content); + }); run_hooks(format => sub { $content=shift->( @@ -241,11 +245,11 @@ sub prune ($) { #{{{ } #}}} sub refresh () { #{{{ - # security check, avoid following symlinks in the srcdir path + # security check, avoid following symlinks in the srcdir path by default my $test=$config{srcdir}; while (length $test) { - if (-l $test) { - error("symlink found in srcdir path ($test)"); + if (-l $test && ! $config{allow_symlinks_before_srcdir}) { + error("symlink found in srcdir path ($test) -- set allow_symlinks_before_srcdir to allow this"); } unless ($test=~s/\/+$//) { $test=dirname($test); @@ -315,6 +319,10 @@ sub refresh () { #{{{ # check for added or removed pages foreach my $file (@files) { my $page=pagename($file); + if (exists $pagesources{$page} && $pagesources{$page} ne $file) { + # the page has changed its type + $forcerebuild{$page}=1; + } $pagesources{$page}=$file; if (! $pagemtime{$page}) { if (isinternal($page)) {