aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Hess <joey@kitenet.net>2012-06-03 13:15:19 -0400
committerJoey Hess <joey@kitenet.net>2012-06-03 13:15:19 -0400
commit32f3b4de00b1d2c4e3bfd7eca63f5ebbd4501ae7 (patch)
tree03f9973ece80ef3e21c9ef2e4f5b1ae131b28a7b
parent4eeeed1b6ec99d180b556ea7a6a8a30c9657a0fd (diff)
parent5b494e1b636f4c26c14c9cf8f964bef0a70c784a (diff)
downloadikiwiki-32f3b4de00b1d2c4e3bfd7eca63f5ebbd4501ae7.tar
ikiwiki-32f3b4de00b1d2c4e3bfd7eca63f5ebbd4501ae7.tar.gz
Merge remote-tracking branch 'intrigeri/mirrorlist'
-rw-r--r--IkiWiki/Plugin/mirrorlist.pm17
-rw-r--r--doc/plugins/mirrorlist.mdwn15
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.