X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/8a56df576a9d7d184a5233bcde8ea07eee86dd60..c849a9f409e8b3cd5091dd8b674670850d7bd3b9:/IkiWiki/Plugin/edittemplate.pm diff --git a/IkiWiki/Plugin/edittemplate.pm b/IkiWiki/Plugin/edittemplate.pm index d65072010..c7f1e4fa7 100644 --- a/IkiWiki/Plugin/edittemplate.pm +++ b/IkiWiki/Plugin/edittemplate.pm @@ -41,6 +41,8 @@ sub needsbuild (@) { } } } + + return $needsbuild; } sub preprocess (@) { @@ -56,11 +58,17 @@ sub preprocess (@) { } my $link=linkpage($params{template}); + add_depends($params{page}, $link, deptype("presence")); my $bestlink=bestlink($params{page}, $link); + if (! length $bestlink) { + add_depends($params{page}, "templates/$link", deptype("presence")); + $link="/templates/".$link; + $bestlink=bestlink($params{page}, $link); + } $pagestate{$params{page}}{edittemplate}{$params{match}}=$bestlink; - return "" if ($params{silent} && IkiWiki::yesno($params{silent})); - add_depends($params{page}, $link, deptype("presence")); + return "" if ($params{silent} && IkiWiki::yesno($params{silent})) && + length $bestlink; return sprintf(gettext("edittemplate %s registered for %s"), htmllink($params{page}, $params{destpage}, $link), $params{match}); @@ -99,9 +107,11 @@ sub formbuilder (@) { my $template=$pagestate{$registering_page}{edittemplate}{$pagespec}; $form->field(name => "editcontent", value => filltemplate($template, $page)); - $form->field(name => "type", - value => pagetype($pagesources{$template})) + my $type=pagetype($pagesources{$template}) if $pagesources{$template}; + $form->field(name => "type", + value => $type) + if defined $type; return; } } @@ -122,10 +132,7 @@ sub filltemplate ($$) { if ($@) { # Indicate that the earlier preprocessor directive set # up a template that doesn't work. - return "[[!pagetemplate ".gettext("failed to process template:")." $@]]"; - } - if (! defined $template) { - return; + return "[[!edittemplate ".gettext("failed to process template:")." $@]]"; } $template->param(name => $page);