]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki/Render.pm
plugin enable/disable working and bugfixes
[ikiwiki.git] / IkiWiki / Render.pm
index 8a79119cd1173beb6a259ee4a3338e7dbbf6045b..cb92d1ade947290edef6afd14636fd4d15c8ca63 100644 (file)
@@ -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)) {