diff options
author | Joey Hess <joey@kitenet.net> | 2011-02-09 14:11:06 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2011-02-09 14:11:06 -0400 |
commit | 8e8311718a0ca4d52aa86a9c8cc439430b11a468 (patch) | |
tree | 8e97a256cad901d15070e5c8df2e65dd1e21da3d /IkiWiki | |
parent | b522d8cddaa27d20eefbab762a33a3676ba0985c (diff) | |
parent | 40f85e5c91c86a55661f68a5e9e38cc2c2a1e1be (diff) |
Merge remote branch 'smcv/ready/transient-tag'
Conflicts:
t/tag.t
Diffstat (limited to 'IkiWiki')
-rw-r--r-- | IkiWiki/Plugin/tag.pm | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/IkiWiki/Plugin/tag.pm b/IkiWiki/Plugin/tag.pm index fd5ce1e8a..13dabce0c 100644 --- a/IkiWiki/Plugin/tag.pm +++ b/IkiWiki/Plugin/tag.pm @@ -7,11 +7,14 @@ use strict; 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 () { @@ -41,6 +44,20 @@ 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 checkconfig () { + if (! defined $config{tag_autocreate_commit}) { + $config{tag_autocreate_commit} = 1; + } } sub taglink ($) { @@ -97,8 +114,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); |