use vars qw{%config %links %oldlinks %pagemtime %pagectime %pagecase
%pagestate %renderedfiles %oldrenderedfiles %pagesources
- %destsources %depends %hooks %forcerebuild $gettext_obj};
+ %destsources %depends %hooks %forcerebuild $gettext_obj
+ %loaded_plugins};
use Exporter q{import};
our @EXPORT = qw(hook debug error template htmlpage add_depends pagespec_match
openid signinedit lockedit conditional
recentchanges parentlinks}],
description => "plugins to enable by default",
- safe => 1,
+ safe => 0,
rebuild => 1,
},
add_plugins => {
safe => 0, # regexp
rebuild => 1,
},
+ banned_users => {
+ type => "string",
+ default => [],
+ description => "users who cannot use the wiki",
+ safe => 1,
+ rebuild => 0,
+ },
wiki_file_prune_regexps => {
type => "internal",
default => [qr/(^|\/)\.\.(\/|$)/, qr/^\./, qr/\/\./,
$config{wikistatedir}="$config{srcdir}/.ikiwiki"
unless exists $config{wikistatedir};
-
- if ($config{rcs}) {
- loadplugin($config{rcs});
- }
- else {
- loadplugin("norcs");
- }
if (defined $config{umask}) {
umask(possibly_foolish_untaint($config{umask}));
}
loadplugin($_) foreach @{$config{default_plugins}}, @{$config{add_plugins}};
+
+ if ($config{rcs}) {
+ if (exists $IkiWiki::hooks{rcs}) {
+ error(gettext("cannot use multiple rcs plugins"));
+ }
+ loadplugin($config{rcs});
+ }
+ if (! exists $IkiWiki::hooks{rcs}) {
+ loadplugin("norcs");
+ }
run_hooks(getopt => sub { shift->() });
if (grep /^-/, @ARGV) {
if (defined $dir && -x "$dir/plugins/$plugin") {
require IkiWiki::Plugin::external;
import IkiWiki::Plugin::external "$dir/plugins/$plugin";
+ $loaded_plugins{$plugin}=1;
return 1;
}
}
if ($@) {
error("Failed to load plugin $mod: $@");
}
+ $loaded_plugins{$plugin}=1;
return 1;
} #}}}