X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/40959ce76d159cefaf0431ad2cc61ad35a9f99b1..d047e2394ec762a2b0645c48bf1889f82e65e8e5:/IkiWiki/Plugin/pagetemplate.pm?ds=inline diff --git a/IkiWiki/Plugin/pagetemplate.pm b/IkiWiki/Plugin/pagetemplate.pm index b5ebf623d..1d8a84ca7 100644 --- a/IkiWiki/Plugin/pagetemplate.pm +++ b/IkiWiki/Plugin/pagetemplate.pm @@ -3,31 +3,41 @@ package IkiWiki::Plugin::pagetemplate; use warnings; use strict; -use IkiWiki 2.00; +use IkiWiki 3.00; my %templates; -sub import { #{{{ +sub import { + hook(type => "getsetup", id => "pagetemplate", call => \&getsetup); hook(type => "preprocess", id => "pagetemplate", call => \&preprocess); hook(type => "templatefile", id => "pagetemplate", call => \&templatefile); -} # }}} +} -sub preprocess (@) { #{{{ +sub getsetup () { + return + plugin => { + safe => 1, + rebuild => undef, + }, +} + +sub preprocess (@) { my %params=@_; if (! exists $params{template} || $params{template} !~ /^[-A-Za-z0-9._+]+$/ || ! defined IkiWiki::template_file($params{template})) { - return "[[pagetemplate ".gettext("bad or missing template")."]]"; + error gettext("bad or missing template") } if ($params{page} eq $params{destpage}) { $templates{$params{page}}=$params{template}; } -} # }}} + return ""; +} -sub templatefile (@) { #{{{ +sub templatefile (@) { my %params=@_; if (exists $templates{$params{page}}) { @@ -35,6 +45,6 @@ sub templatefile (@) { #{{{ } return undef; -} # }}} +} 1