]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/commitdiff
underlay: Also allow configuring additional directories to search for template files in.
authorJoey Hess <joey@gnu.kitenet.net>
Tue, 8 Sep 2009 21:27:37 +0000 (17:27 -0400)
committerJoey Hess <joey@gnu.kitenet.net>
Tue, 8 Sep 2009 21:27:37 +0000 (17:27 -0400)
IkiWiki.pm
IkiWiki/Plugin/underlay.pm
debian/changelog
doc/plugins/underlay.mdwn

index 01898936f36a1702ebb8a0e3775e7bf735b67931..2f11069c691acb8d1bc3e43d1bfec915aa618898 100644 (file)
@@ -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;
index 380d418fba9919b3023e391bed3237406424f76a..c599356728e39dddcf729f62cbe5e78ada939f50 100644 (file)
@@ -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;
index 86e8513f75702f222635333a24247b8868548bbb..de165e4ff9cb7ab15733975184767ac2f111bd9a 100644 (file)
@@ -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
 
index 09d096a6e39bd86d4b49bf284eb1060d2a35fe63..f7eafee7cd7017c319fa6c63f82e4fb70a8a660e 100644 (file)
@@ -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`.