X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/64def3eaeae4ddbe5cee61d08612da1eb1bc54d3..219afc3f9c646f323c9a51744b6fba43f04786db:/IkiWiki/Plugin/autoindex.pm?ds=sidebyside diff --git a/IkiWiki/Plugin/autoindex.pm b/IkiWiki/Plugin/autoindex.pm index 0a8d90701..ef22ec8a3 100644 --- a/IkiWiki/Plugin/autoindex.pm +++ b/IkiWiki/Plugin/autoindex.pm @@ -7,15 +7,27 @@ use IkiWiki 2.00; use Encode; sub import { #{{{ + hook(type => "getsetup", id => "autoindex", call => \&getsetup); hook(type => "refresh", id => "autoindex", call => \&refresh); } # }}} +sub getsetup () { #{{{ + return + plugin => { + safe => 1, + rebuild => 0, + }, +} #}}} + sub genindex ($) { #{{{ my $page=shift; my $file=$page.".".$config{default_pageext}; my $template=template("autoindex.tmpl"); $template->param(page => $page); writefile($file, $config{srcdir}, $template->output); + if ($config{rcs}) { + IkiWiki::rcs_add($file); + } } #}}} sub refresh () { #{{{ @@ -45,9 +57,23 @@ sub refresh () { #{{{ } }, $config{srcdir}); + my @needed; foreach my $dir (keys %dirs) { if (! exists $pages{$dir}) { - genindex($dir); + push @needed, $dir; + } + } + + if (@needed) { + if ($config{rcs}) { + IkiWiki::disable_commit_hook(); + } + genindex($_) foreach @needed; + if ($config{rcs}) { + IkiWiki::rcs_commit_staged( + gettext("automatic index generation"), + undef, undef); + IkiWiki::enable_commit_hook(); } } } #}}}