From 5b494e1b636f4c26c14c9cf8f964bef0a70c784a Mon Sep 17 00:00:00 2001 From: intrigeri Date: Mon, 20 Dec 2010 15:21:49 +0100 Subject: [PATCH 1/1] 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 --- IkiWiki/Plugin/mirrorlist.pm | 17 ++++++++++++++++- doc/plugins/mirrorlist.mdwn | 15 +++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) 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{{$_}."?do=goto&page=$page" : + $config{mirrorlist}->{$_}."/".urlto($page, "") ). qq{">$_} } 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. -- 2.39.5