X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/d83d11e6b87e718872e72153ee6bb3a382615c25..a106727d40b120ce4ac4da700e400c7fd4978b1e:/IkiWiki/Plugin/mirrorlist.pm

diff --git a/IkiWiki/Plugin/mirrorlist.pm b/IkiWiki/Plugin/mirrorlist.pm
index 104587f3a..f54d94ad5 100644
--- a/IkiWiki/Plugin/mirrorlist.pm
+++ b/IkiWiki/Plugin/mirrorlist.pm
@@ -3,33 +3,54 @@ package IkiWiki::Plugin::mirrorlist;
 
 use warnings;
 use strict;
-use IkiWiki;
+use IkiWiki 3.00;
 
-sub import { #{{{
+sub import {
+	hook(type => "getsetup", id => "mirrorlist", call => \&getsetup);
 	hook(type => "pagetemplate", id => "mirrorlist", call => \&pagetemplate);
-} # }}}
+}
 
-sub pagetemplate (@) { #{{{
+sub getsetup () {
+	return
+		plugin => {
+			safe => 1,
+			rebuild => 1,
+			section => "web",
+		},
+		mirrorlist => {
+			type => "string",
+			example => {},
+			description => "list of mirrors",
+			safe => 1,
+			rebuild => 1,
+		},
+}
+
+sub pagetemplate (@) {
 	my %params=@_;
         my $template=$params{template};
 	
-	$template->param(extrafooter => mirrorlist($params{page}))
-		if $template->query(name => "extrafooter");
-} # }}}
+	if ($template->query(name => "extrafooter") &&
+	    keys %{$config{mirrorlist}} > 0) {
+		my $value=$template->param("extrafooter");
+		$value.=mirrorlist($params{page});
+		$template->param(extrafooter => $value);
+	}
+}
 
-sub mirrorlist ($) { #{{{
+sub mirrorlist ($) {
 	my $page=shift;
-	return "<p>Mirror".
-		(keys %{$config{mirrorlist}} > 1 ? "s" : "").
+	return ($config{html5} ? '<nav id="mirrorlist">' : '<div>').
+		(keys %{$config{mirrorlist}} > 1 ? gettext("Mirrors") : gettext("Mirror")).
 		": ".
 		join(", ",
 			map { 
 				qq{<a href="}.
-				$config{mirrorlist}->{$_}."/".$page.
+				$config{mirrorlist}->{$_}."/".urlto($page, "").
 				qq{">$_</a>}
 			} keys %{$config{mirrorlist}}
 		).
-		"</p>";
-} # }}}
+		($config{html5} ? '</nav>' : '</div>');
+}
 
 1