blob: b814c0e6732e6294c95f2ed054148906e47c3d30 (
plain)
- #!/usr/bin/perl
- package IkiWiki::Plugin::edittemplate;
- use warnings;
- use strict;
- use IkiWiki 2.00;
- sub import { #{{{
- hook(type => "needsbuild", id => "edittemplate",
- call => \&needsbuild);
- hook(type => "preprocess", id => "edittemplate",
- call => \&preprocess);
- hook(type => "formbuilder_setup", id => "edittemplate",
- call => \&formbuilder_setup);
- } #}}}
- sub needsbuild (@) { #{{{
- my $needsbuild=shift;
- foreach my $page (keys %pagestate) {
- if (exists $pagestate{$page}{edittemplate}) {
- if (grep { $_ eq $pagesources{$page} } @$needsbuild) {
- # remove state, it will be re-added
- # if the preprocessor directive is still
- # there during the rebuild
- delete $pagestate{$page}{edittemplate};
- }
- }
- }
- } #}}}
- sub preprocess (@) { #{{{
- my %params=@_;
- return "" if $params{page} ne $params{destpage};
- if (! exists $params{template} || ! length($params{template})) {
- return return "[[meta ".gettext("template not specified")."]]";
- }
- if (! exists $params{match} || ! length($params{match})) {
- return return "[[meta ".gettext("match not specified")."]]";
- }
- $pagestate{$params{page}}{edittemplate}{$params{match}}=$params{template};
- return sprintf(gettext("edittemplate %s registered for %s"),
- $params{template}, $params{match});
- } # }}}
- sub formbuilder_setup { #{{{
- my %params=@_;
- my $form=$params{form};
- my $page=$form->field("page");
- return if $form->title ne "editpage"
- || $form->field("do") ne "create";
- $form->field(name => "editcontent", value => "hi mom!");
- } #}}}
- 1
|