summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--IkiWiki.pm10
-rw-r--r--IkiWiki/Plugin/underlay.pm11
-rw-r--r--debian/changelog2
-rw-r--r--doc/plugins/underlay.mdwn8
4 files changed, 27 insertions, 4 deletions
diff --git a/IkiWiki.pm b/IkiWiki.pm
index 01898936f..2f11069c6 100644
--- a/IkiWiki.pm
+++ b/IkiWiki.pm
@@ -150,6 +150,13 @@ sub getsetup () {
safe => 0, # path
rebuild => 1,
},
+ templatedirs => {
+ type => "internal",
+ default => [],
+ description => "additional directories containing template files",
+ safe => 0,
+ rebuild => 0,
+ },
underlaydir => {
type => "string",
default => "$installdir/share/ikiwiki/basewiki",
@@ -1610,7 +1617,8 @@ sub saveindex () {
sub template_file ($) {
my $template=shift;
- foreach my $dir ($config{templatedir}, "$installdir/share/ikiwiki/templates") {
+ foreach my $dir ($config{templatedir}, @{$config{templatedirs}},
+ "$installdir/share/ikiwiki/templates") {
return "$dir/$template" if -e "$dir/$template";
}
return;
diff --git a/IkiWiki/Plugin/underlay.pm b/IkiWiki/Plugin/underlay.pm
index 380d418fb..c59935672 100644
--- a/IkiWiki/Plugin/underlay.pm
+++ b/IkiWiki/Plugin/underlay.pm
@@ -27,14 +27,21 @@ sub getsetup () {
safe => 0,
rebuild => 1,
},
+ add_templates => {
+ type => "string",
+ default => [],
+ description => "extra template directories to add",
+ advanced => 1,
+ safe => 0,
+ rebuild => 1,
+ },
}
sub checkconfig () {
- return unless exists $config{add_underlays};
-
foreach my $dir (@{$config{add_underlays}}) {
add_underlay($dir);
}
+ push @{$config{templatedirs}}, @{$config{add_templates}};
}
1;
diff --git a/debian/changelog b/debian/changelog
index 86e8513f7..de165e4ff 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -4,6 +4,8 @@ ikiwiki (3.14159265) UNRELEASED; urgency=low
including Philippe Batailler, Alexandre Dupas, and Steve Petruzzello.
* Expand banned_users; it can now include PageSpecs, which
allows banning by IP address.
+ * underlay: Also allow configuring additional directories to search
+ for template files in.
-- Joey Hess <joeyh@debian.org> Wed, 02 Sep 2009 15:01:27 -0400
diff --git a/doc/plugins/underlay.mdwn b/doc/plugins/underlay.mdwn
index 09d096a6e..f7eafee7c 100644
--- a/doc/plugins/underlay.mdwn
+++ b/doc/plugins/underlay.mdwn
@@ -1,7 +1,7 @@
[[!template id=plugin name=underlay author="[[Simon_McVittie|smcv]]"]]
[[!tag type/useful]]
-This plugin adds an `add_underlays` option to the `.setup` file.
+This plugin adds an `add_underlays` option to the setup file.
Its value is a list of underlay directories whose content is added to the wiki.
Multiple underlays are normally set up automatically by other plugins (for
@@ -12,3 +12,9 @@ like photos or software releases.
Directories in `add_underlays` should usually be absolute. If relative, they're
interpreted as relative to the parent directory of the basewiki underlay, which
is probably not particularly useful in this context.
+
+--
+
+This plugin also adds an `add_templates` option to the setup file.
+Its value is a list of template directories to look for template files in,
+if they are not present in the `templatedir`.