X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/1f7f5d5e0e21920c5f15290cd34594ad91077071..f309938c9ad1ebd4e337c6fba7b2c9fdc957acfa:/IkiWiki/Plugin/google.pm?ds=sidebyside diff --git a/IkiWiki/Plugin/google.pm b/IkiWiki/Plugin/google.pm index 92b9b29eb..68cde261c 100644 --- a/IkiWiki/Plugin/google.pm +++ b/IkiWiki/Plugin/google.pm @@ -3,38 +3,36 @@ package IkiWiki::Plugin::google; use warnings; use strict; -use IkiWiki 2.00; +use IkiWiki 3.00; use URI; -my $host; - -sub import { #{{{ +sub import { hook(type => "getsetup", id => "google", call => \&getsetup); hook(type => "checkconfig", id => "google", call => \&checkconfig); hook(type => "pagetemplate", id => "google", call => \&pagetemplate); -} # }}} +} -sub getsetup () { #{{{ +sub getsetup () { return plugin => { safe => 1, rebuild => 1, + section => "web", }, -} #}}} +} -sub checkconfig () { #{{{ +sub checkconfig () { if (! length $config{url}) { - error(sprintf(gettext("Must specify %s when using the google search plugin"), "url")); - } - my $uri=URI->new($config{url}); - if (! $uri || ! defined $uri->host) { - error(gettext("Failed to parse url, cannot determine domain name")); + error(sprintf(gettext("Must specify %s when using the %s plugin"), "url", 'google')); } - $host=$uri->host; -} #}}} + + # This is a mass dependency, so if the search form template + # changes, every page is rebuilt. + add_depends("", "templates/googleform.tmpl"); +} my $form; -sub pagetemplate (@) { #{{{ +sub pagetemplate (@) { my %params=@_; my $page=$params{page}; my $template=$params{template}; @@ -43,12 +41,13 @@ sub pagetemplate (@) { #{{{ if ($template->query(name => "searchform")) { if (! defined $form) { my $searchform = template("googleform.tmpl", blind_cache => 1); - $searchform->param(sitefqdn => $host); + $searchform->param(url => $config{url}); + $searchform->param(html5 => $config{html5}); $form=$searchform->output; } $template->param(searchform => $form); } -} #}}} +} 1