diff options
author | intrigeri <intrigeri@boum.org> | 2010-12-20 15:21:49 +0100 |
---|---|---|
committer | intrigeri <intrigeri@boum.org> | 2012-04-28 00:18:59 +0200 |
commit | 5b494e1b636f4c26c14c9cf8f964bef0a70c784a (patch) | |
tree | 61f73f8c4cae2357c6f2f5a4a37f71ab402931ad | |
parent | e09eeb24363a3e0033102c894cef347afd89b0c2 (diff) | |
download | ikiwiki-5b494e1b636f4c26c14c9cf8f964bef0a70c784a.tar ikiwiki-5b494e1b636f4c26c14c9cf8f964bef0a70c784a.tar.gz |
mirrorlist: new mirrorlist_use_cgi boolean setting.
When set to true, let each mirror's ikiwiki CGI find out the correct target page
url themselves.
This resolves the usecase described on
[[todo/mirrorlist_with_per-mirror_usedirs_settings]].
Signed-off-by: intrigeri <intrigeri@boum.org>
-rw-r--r-- | IkiWiki/Plugin/mirrorlist.pm | 17 | ||||
-rw-r--r-- | doc/plugins/mirrorlist.mdwn | 15 |
2 files changed, 31 insertions, 1 deletions
diff --git a/IkiWiki/Plugin/mirrorlist.pm b/IkiWiki/Plugin/mirrorlist.pm index f54d94ad5..b7e532485 100644 --- a/IkiWiki/Plugin/mirrorlist.pm +++ b/IkiWiki/Plugin/mirrorlist.pm @@ -24,6 +24,19 @@ sub getsetup () { safe => 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 (@) { @@ -46,7 +59,9 @@ sub mirrorlist ($) { join(", ", map { qq{<a href="}. - $config{mirrorlist}->{$_}."/".urlto($page, ""). + ( $config{mirrorlist_use_cgi} ? + $config{mirrorlist}->{$_}."?do=goto&page=$page" : + $config{mirrorlist}->{$_}."/".urlto($page, "") ). qq{">$_</a>} } keys %{$config{mirrorlist}} ). diff --git a/doc/plugins/mirrorlist.mdwn b/doc/plugins/mirrorlist.mdwn index aedc1f4a0..b63685813 100644 --- a/doc/plugins/mirrorlist.mdwn +++ b/doc/plugins/mirrorlist.mdwn @@ -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 assumed to exist in the same location under the specified url on each 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. |