use UNIVERSAL;
sub import { #{{{
+ hook(type => "getsetup", id => "conditional", call => \&getsetup);
hook(type => "preprocess", id => "if", call => \&preprocess_if);
} # }}}
+sub getsetup { #{{{
+ return
+ plugin => {
+ safe => 1,
+ rebuild => undef,
+ },
+} #}}}
+
sub preprocess_if (@) { #{{{
my %params=@_;
foreach my $param (qw{test then}) {
if (! exists $params{$param}) {
- return "[[if ".sprintf(gettext('%s parameter is required'), $param)."]]";
+ error sprintf(gettext('%s parameter is required'), $param);
}
}
# An optimisation to avoid needless looping over every page
# and adding of dependencies for simple uses of some of the
# tests.
- $params{test} =~ /^(enabled|sourcepage|destpage)\((.*)\)$/) {
+ $params{test} =~ /^\s*\!?\s*(enabled|sourcepage|destpage|included)\((.*)\)\s*$/) {
add_depends($params{page}, "$params{test} and $params{page}");
$result=pagespec_match($params{page}, $params{test},
location => $params{page},
$ret="";
}
return IkiWiki::preprocess($params{page}, $params{destpage},
- IkiWiki::filter($params{page}, $ret));
+ IkiWiki::filter($params{page}, $params{destpage}, $ret));
} # }}}
package IkiWiki::PageSpec;
}
} #}}}
-sub match_included ($$;$) { #{{{
+sub match_included ($$;@) { #{{{
shift;
shift;
my %params=@_;