underlay plugin, a command-line interface for add_underlay()
parent
aecc45bd20
commit
5f80ac3202
|
@ -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;
|
Loading…
Reference in New Issue