Merge remote-tracking branch 'intrigeri/mirrorlist'

master
Joey Hess 2012-06-03 13:15:19 -04:00
commit 32f3b4de00
2 changed files with 31 additions and 1 deletions

View File

@ -24,6 +24,19 @@ sub getsetup () {
safe => 1, safe => 1,
rebuild => 1, rebuild => 1,
}, },
mirrorlist_use_cgi => {
type => 'boolean',
example => 1,
description => "generate links that point to the mirrors' ikiwiki CGI",
safe => 1,
rebuild => 1,
},
}
sub checkconfig () {
if (! defined $config{mirrorlist_use_cgi}) {
$config{mirrorlist_use_cgi}=0;
}
} }
sub pagetemplate (@) { sub pagetemplate (@) {
@ -46,7 +59,9 @@ sub mirrorlist ($) {
join(", ", join(", ",
map { map {
qq{<a href="}. qq{<a href="}.
$config{mirrorlist}->{$_}."/".urlto($page, ""). ( $config{mirrorlist_use_cgi} ?
$config{mirrorlist}->{$_}."?do=goto&page=$page" :
$config{mirrorlist}->{$_}."/".urlto($page, "") ).
qq{">$_</a>} qq{">$_</a>}
} keys %{$config{mirrorlist}} } keys %{$config{mirrorlist}}
). ).

View File

@ -5,3 +5,18 @@ 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 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 assumed to exist in the same location under the specified url on each
mirror. mirror.
In case the `usedirs` setting is not the same on all your mirrors, or
if it is not the same on your local wiki as on the mirror a
possibility is to let each mirror's ikiwiki CGI find out the correct
target page url themselves; in that case the mirrors urls must be set
to their ikiwiki CGI url instead of their base url. Example:
mirrorlist_use_cgi => 1,
mirrorlist => {
'mirror1' => 'https://mirror.example.org/ikiwiki.cgi',
'mirror2' => 'https://mirror2.example.org/ikiwiki.cgi',
},
The mirrors must have the ikiwiki CGI and the [[goto]] plugin enabled
for this to work.