]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki/Plugin/edittemplate.pm
switch preprocess hooks to use error function
[ikiwiki.git] / IkiWiki / Plugin / edittemplate.pm
index aa72b08457616c98e1bba6ce658a2beedc1b00b6..d1716a31564031813e7d9f273ab7ff3ca02f3f5c 100644 (file)
@@ -21,7 +21,8 @@ sub needsbuild (@) { #{{{
 
        foreach my $page (keys %pagestate) {
                if (exists $pagestate{$page}{edittemplate}) {
-                       if (grep { $_ eq $pagesources{$page} } @$needsbuild) {
+                       if (exists $pagesources{$page} && 
+                           grep { $_ eq $pagesources{$page} } @$needsbuild) {
                                # remove state, it will be re-added
                                # if the preprocessor directive is still
                                # there during the rebuild
@@ -37,10 +38,10 @@ sub preprocess (@) { #{{{
        return "" if $params{page} ne $params{destpage};
 
        if (! exists $params{template} || ! length($params{template})) {
-               return return "[[meta ".gettext("template not specified")."]]";
+               error gettext("template not specified")
        }
        if (! exists $params{match} || ! length($params{match})) {
-               return return "[[meta ".gettext("match not specified")."]]";
+               error gettext("match not specified")
        }
 
        $pagestate{$params{page}}{edittemplate}{$params{match}}=$params{template};
@@ -107,7 +108,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);