--- /dev/null
+#!/usr/bin/perl
+package IkiWiki::Plugin::mirrorlist;
+
+use warnings;
+use strict;
+use IkiWiki;
+
+sub import { #{{{
+ hook(type => "pagetemplate", id => "mirrorlist", call => \&pagetemplate);
+} # }}}
+
+sub pagetemplate (@) { #{{{
+ my %params=@_;
+ my $template=$params{template};
+
+ $template->param(extrafooter => mirrorlist($params{page}))
+ if $template->query(name => "extrafooter");
+} # }}}
+
+sub mirrorlist ($) { #{{{
+ my $page=shift;
+ return "<p>Mirror".
+ (keys %{$config{mirrorlist}} > 1 ? "s" : "").
+ ": ".
+ join(", ",
+ map {
+ qq{<a href="}.
+ $config{mirrorlist}->{$_}."/".$page.
+ qq{">$_</a>}
+ } keys %{$config{mirrorlist}}
+ ).
+ "</p>";
+} # }}}
+
+1
+ikiwiki (1.37) UNRELEASED; urgency=low
+
+ * Add mirrorlist plugin.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 22 Dec 2006 19:54:41 -0500
+
ikiwiki (1.36) unstable; urgency=low
* Fix various links on the hyperestradier pages.
# For use with the openid plugin, to give an url to a page users
# can use to signup for an OpenID.
#openidsignup => "http://myopenid.com/",
+
+ # For use with the mirrorlist plugin, a list of mirrors.
+ #mirrorlist => {
+ # mirror1 => "http://hostname1",
+ # mirror2 => "http://hostname2/mirror",
+ #},
}
--- /dev/null
+[[template id=plugin name=mirror included=1 author="[[Joey]]"]]
+[[tag type/special-purpose]]
+
+This plugin allows adding links a list of mirrors to each page in the
+wiki. For each mirror, a name and an url should be specified. Pages are
+assumed to exist in the same location under the specified url on each
+mirror. The [[ikiwiki.setup]] file has an example of configuring a list of
+mirrors.
<span class="pageinfo">
<!-- from <TMPL_VAR NAME=WIKINAME> -->
Last edited <TMPL_VAR NAME=MTIME>
+<TMPL_IF EXTRAFOOTER><TMPL_VAR EXTRAFOOTER></TMPL_IF>
</span>
</div>