summaryrefslogtreecommitdiff
path: root/doc/plugins/contrib/underlay.mdwn
blob: 94651f1d3522e0b447836e1a1f24010b0a1cb15a (plain)

[[!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;