use IkiWiki 3.00;
sub import {
+ hook(type => "checkconfig", id => "tag", call => \&checkconfig);
hook(type => "getopt", id => "tag", call => \&getopt);
hook(type => "getsetup", id => "tag", call => \&getsetup);
hook(type => "preprocess", id => "tag", call => \&preprocess_tag, scan => 1);
hook(type => "preprocess", id => "taglink", call => \&preprocess_taglink, scan => 1);
hook(type => "pagetemplate", id => "tag", call => \&pagetemplate);
+
+ IkiWiki::loadplugin("transient");
}
sub getopt () {
safe => 1,
rebuild => undef,
},
+ tag_autocreate_commit => {
+ type => "boolean",
+ example => 1,
+ default => 1,
+ description => "commit autocreated tag pages",
+ safe => 1,
+ rebuild => 0,
+ },
+}
+
+sub checkconfig () {
+ if (! defined $config{tag_autocreate_commit}) {
+ $config{tag_autocreate_commit} = 1;
+ }
}
sub taglink ($) {
my $template=template("autotag.tmpl");
$template->param(tagname => tagname($tag));
$template->param(tag => $tag);
- writefile($tagfile, $config{srcdir}, $template->output);
- if ($config{rcs}) {
+
+ my $dir = $config{srcdir};
+ if (! $config{tag_autocreate_commit}) {
+ $dir = $IkiWiki::Plugin::transient::transientdir;
+ }
+
+ writefile($tagfile, $dir, $template->output);
+ if ($config{rcs} && $config{tag_autocreate_commit}) {
IkiWiki::disable_commit_hook();
IkiWiki::rcs_add($tagfile);
IkiWiki::rcs_commit_staged(message => $message);
use warnings;
use strict;
-use Test::More tests => 22;
+use Test::More tests => 23;
BEGIN { use_ok("IkiWiki"); }
BEGIN { use_ok("IkiWiki::Render"); }
$config{userdir} = "users";
$config{tagbase} = "tags";
$config{tag_autocreate} = 1;
+$config{tag_autocreate_commit} = 0;
$config{default_pageext} = "mdwn";
$config{wiki_file_prune_regexps} = [qr/^\./];
$config{underlaydirbase} = '.';
ok(!-e "t/tmp/tags/lucky.mdwn");
my (%pages, @del);
IkiWiki::gen_autofile("tags/lucky.mdwn", \%pages, \@del);
-is_deeply(\%pages, {"t/tmp/tags/lucky" => 1});
-is_deeply(\@del, []);
-ok(-s "t/tmp/tags/lucky.mdwn");
+ok(! -s "t/tmp/tags/lucky.mdwn");
+ok(-s "t/tmp/.ikiwiki/transient/tags/lucky.mdwn");
+is_deeply(\%pages, {"t/tmp/tags/lucky" => 1}) || diag explain \%pages;
+is_deeply(\@del, []) || diag explain \@del;
# generating an autofile that already exists does nothing
%pages = @del = ();