diff options
-rw-r--r-- | doc/plugins/contrib/underlay.mdwn | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/doc/plugins/contrib/underlay.mdwn b/doc/plugins/contrib/underlay.mdwn new file mode 100644 index 000000000..94651f1d3 --- /dev/null +++ b/doc/plugins/contrib/underlay.mdwn @@ -0,0 +1,55 @@ +[[!template id=plugin name=underlay author="[[Simon_McVittie|smcv]]"]] +[[!tag type/useful]] + +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 +instance, the smiley images used by [[plugins/smileys]]), but they can also be +used as a way to pull in external files that you don't want in revision control, +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. + + #!/usr/bin/perl + package IkiWiki::Plugin::underlay; + # Copyright © 2008 Simon McVittie <http://smcv.pseudorandom.co.uk/> + # Licensed under the GNU GPL, version 2, or any later version published by the + # Free Software Foundation + + use warnings; + use strict; + use IkiWiki 2.00; + + sub import { + hook(type => "getsetup", id => "underlay", call => \&getsetup); + hook(type => "checkconfig", id => "underlay", call => \&checkconfig); + } + + sub getsetup () { + return + plugin => { + safe => 0, + rebuild => undef, + }, + add_underlays => { + type => "string", + default => [], + description => "extra underlay 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); + } + } + + 1; |