summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon McVittie <smcv@debian.org>2010-12-25 23:01:08 +0000
committerSimon McVittie <smcv@debian.org>2011-01-07 20:09:52 +0000
commit2a60cda1729ead6dd2f13fc40ef1dccec5b30d92 (patch)
tree059eba7eb55a1bd6df222fc5272b766496f6995f
parent040038b6559140b4a8c04396098ade2b4d4573b9 (diff)
tag: optionally write autocreated tags to the transient underlay
For the moment, have the tag test keep the old behaviour.
-rw-r--r--IkiWiki/Plugin/tag.pm20
-rwxr-xr-xt/tag.t1
2 files changed, 19 insertions, 2 deletions
diff --git a/IkiWiki/Plugin/tag.pm b/IkiWiki/Plugin/tag.pm
index fd5ce1e8a..e4c8a1155 100644
--- a/IkiWiki/Plugin/tag.pm
+++ b/IkiWiki/Plugin/tag.pm
@@ -12,6 +12,8 @@ sub import {
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 () {
@@ -41,6 +43,14 @@ sub getsetup () {
safe => 1,
rebuild => undef,
},
+ tag_autocreate_commit => {
+ type => "boolean",
+ example => 1,
+ default => 1,
+ description => "commit autocreated tag pages",
+ safe => 1,
+ rebuild => 0,
+ },
}
sub taglink ($) {
@@ -97,8 +107,14 @@ sub gentag ($) {
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);
diff --git a/t/tag.t b/t/tag.t
index 693900c43..f4aac765f 100755
--- a/t/tag.t
+++ b/t/tag.t
@@ -22,6 +22,7 @@ $config{wiki_file_chars} = "-[:alnum:]+/.:_";
$config{userdir} = "users";
$config{tagbase} = "tags";
$config{tag_autocreate} = 1;
+$config{tag_autocreate_commit} = 1;
$config{default_pageext} = "mdwn";
$config{wiki_file_prune_regexps} = [qr/^\./];
$config{underlaydirbase} = '.';