use HTML::Template;
use vars qw{%config %links %oldlinks %oldpagemtime %pagectime
- %renderedfiles %pagesources %depends %plugins};
+ %renderedfiles %pagesources %depends %hooks};
sub checkconfig () { #{{{
if ($config{cgi} && ! length $config{url}) {
$config{wikistatedir}="$config{srcdir}/.ikiwiki"
unless exists $config{wikistatedir};
- if ($config{svn}) {
- require IkiWiki::Rcs::SVN;
- $config{rcs}=1;
+ if ($config{rcs}) {
+ eval qq{require IkiWiki::Rcs::$config{rcs}};
+ if ($@) {
+ error("Failed to load RCS module IkiWiki::Rcs::$config{rcs}: $@");
+ }
}
else {
require IkiWiki::Rcs::Stub;
- $config{rcs}=0;
}
foreach my $plugin (@{$config{plugin}}) {
return 0;
} #}}}
-sub register_plugin ($$$) { # {{{
- my $type=shift;
- my $command=shift;
- my $function=shift;
+sub hook (@) { # {{{
+ my %param=@_;
+
+ if (! exists $param{type} || ! ref $param{call} || ! exists $param{id}) {
+ error "hook requires type, call, and id parameters";
+ }
- $plugins{$type}{$command}=$function;
+ $hooks{$param{type}}{$param{id}}=\%param;
} # }}}
1