summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--IkiWiki/Plugin/autoindex.pm18
-rwxr-xr-xt/autoindex.t1
2 files changed, 17 insertions, 2 deletions
diff --git a/IkiWiki/Plugin/autoindex.pm b/IkiWiki/Plugin/autoindex.pm
index 5a58c820a..d02618581 100644
--- a/IkiWiki/Plugin/autoindex.pm
+++ b/IkiWiki/Plugin/autoindex.pm
@@ -9,6 +9,7 @@ use Encode;
sub import {
hook(type => "getsetup", id => "autoindex", call => \&getsetup);
hook(type => "refresh", id => "autoindex", call => \&refresh);
+ IkiWiki::loadplugin("transient");
}
sub getsetup () {
@@ -17,6 +18,14 @@ sub getsetup () {
safe => 1,
rebuild => 0,
},
+ autoindex_commit => {
+ type => "boolean",
+ example => 1,
+ default => 1,
+ description => "commit autocreated index pages",
+ safe => 1,
+ rebuild => 0,
+ },
}
sub genindex ($) {
@@ -28,11 +37,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);
diff --git a/t/autoindex.t b/t/autoindex.t
index 665f0dc1c..1e40b4c53 100755
--- a/t/autoindex.t
+++ b/t/autoindex.t
@@ -26,6 +26,7 @@ $config{userdir} = "users";
$config{tagbase} = "tags";
$config{default_pageext} = "mdwn";
$config{wiki_file_prune_regexps} = [qr/^\./];
+$config{autoindex_commit} = 1;
is(checkconfig(), 1);