]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki/Plugin/autoindex.pm
autoindex: remove unnecessary special case for transient underlay
[ikiwiki.git] / IkiWiki / Plugin / autoindex.pm
index 5a58c820aaefa1244fd2b08947f82968ce945c37..04d5014610dea28e1d069b67bb19601960c6284d 100644 (file)
@@ -7,8 +7,10 @@ use IkiWiki 3.00;
 use Encode;
 
 sub import {
+       hook(type => "checkconfig", id => "autoindex", call => \&checkconfig);
        hook(type => "getsetup", id => "autoindex", call => \&getsetup);
        hook(type => "refresh", id => "autoindex", call => \&refresh);
+       IkiWiki::loadplugin("transient");
 }
 
 sub getsetup () {
@@ -17,6 +19,20 @@ sub getsetup () {
                        safe => 1,
                        rebuild => 0,
                },
+               autoindex_commit => {
+                       type => "boolean",
+                       example => 1,
+                       default => 1,
+                       description => "commit autocreated index pages",
+                       safe => 1,
+                       rebuild => 0,
+               },
+}
+
+sub checkconfig () {
+       if (! defined $config{autoindex_commit}) {
+               $config{autoindex_commit} = 1;
+       }
 }
 
 sub genindex ($) {
@@ -28,11 +44,16 @@ sub genindex ($) {
                                $page);
                        debug($message);
 
+                       my $dir = $config{srcdir};
+                       if (! $config{autoindex_commit}) {
+                               $dir = $IkiWiki::Plugin::transient::transientdir;
+                       }
+
                        my $template = template("autoindex.tmpl");
                        $template->param(page => $page);
-                       writefile($file, $config{srcdir}, $template->output);
+                       writefile($file, $dir, $template->output);
 
-                       if ($config{rcs}) {
+                       if ($config{rcs} && $config{autoindex_commit}) {
                                IkiWiki::disable_commit_hook();
                                IkiWiki::rcs_add($file);
                                IkiWiki::rcs_commit_staged(message => $message);