X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/1c2f59239ff0a6657843c92a39249171dd8d3576..219afc3f9c646f323c9a51744b6fba43f04786db:/IkiWiki/Plugin/edittemplate.pm?ds=inline diff --git a/IkiWiki/Plugin/edittemplate.pm b/IkiWiki/Plugin/edittemplate.pm index 76c1cd42a..cdcdd074f 100644 --- a/IkiWiki/Plugin/edittemplate.pm +++ b/IkiWiki/Plugin/edittemplate.pm @@ -8,6 +8,8 @@ use HTML::Template; use Encode; sub import { #{{{ + hook(type => "getsetup", id => "edittemplate", + call => \&getsetup); hook(type => "needsbuild", id => "edittemplate", call => \&needsbuild); hook(type => "preprocess", id => "edittemplate", @@ -16,6 +18,14 @@ sub import { #{{{ call => \&formbuilder); } #}}} +sub getsetup () { #{{{ + return + plugin => { + safe => 1, + rebuild => undef, + }, +} #}}} + sub needsbuild (@) { #{{{ my $needsbuild=shift; @@ -38,10 +48,10 @@ sub preprocess (@) { #{{{ return "" if $params{page} ne $params{destpage}; if (! exists $params{template} || ! length($params{template})) { - return "[[meta ".gettext("template not specified")."]]"; + error gettext("template not specified") } if (! exists $params{match} || ! length($params{match})) { - return "[[meta ".gettext("match not specified")."]]"; + error gettext("match not specified") } $pagestate{$params{page}}{edittemplate}{$params{match}}=$params{template}; @@ -108,7 +118,9 @@ sub filltemplate ($$) { #{{{ ); }; if ($@) { - return "[[pagetemplate ".gettext("failed to process")." $@]]"; + # Indicate that the earlier preprocessor directive set + # up a template that doesn't work. + return "[[!pagetemplate ".gettext("failed to process")." $@]]"; } $template->param(name => $page);