use warnings;
use strict;
-use IkiWiki 2.00;
+use IkiWiki 3.00;
-sub import { #{{{
+sub import {
hook(type => "getsetup", id => "mirrorlist", call => \&getsetup);
hook(type => "pagetemplate", id => "mirrorlist", call => \&pagetemplate);
-} # }}}
+}
-sub getsetup () { #{{{
+sub getsetup () {
return
+ plugin => {
+ safe => 1,
+ rebuild => 1,
+ section => "web",
+ },
mirrorlist => {
type => "string",
- default => {},
+ example => {},
description => "list of mirrors",
safe => 1,
rebuild => 1,
},
-} #}}}
+}
-sub pagetemplate (@) { #{{{
+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>".
+ return ($config{html5} ? '<nav id="mirrorlist">' : '<div>').
(keys %{$config{mirrorlist}} > 1 ? gettext("Mirrors") : gettext("Mirror")).
": ".
join(", ",
qq{">$_</a>}
} keys %{$config{mirrorlist}}
).
- "</p>";
-} # }}}
+ ($config{html5} ? '</nav>' : '</div>');
+}
1