* Add all=no option to conditional, can be used to form conditionals that do
not need to examine every page in the wiki. * Use this to simplify the goodstuff detection in the plugin template.master
parent
e1c54fef3d
commit
127bceef5b
|
@ -13,15 +13,19 @@ sub import { #{{{
|
|||
sub preprocess_if (@) { #{{{
|
||||
my %params=@_;
|
||||
|
||||
if (! exists $params{test} || ! exists $params{then}) {
|
||||
return "[[if ".gettext('"test" and "then" parameters are required')."]]";
|
||||
foreach my $param (qw{test then}) {
|
||||
if (! exists $params{$param}) {
|
||||
return "[[if ".sprintf(gettext('%s parameter is required'), $param)."]]";
|
||||
}
|
||||
}
|
||||
|
||||
my $result=0;
|
||||
# An optimisation to avoid needless looping over every page
|
||||
# and adding of dependencies for simple uses of some of the
|
||||
# tests.
|
||||
if ($params{test} =~ /^(enabled|sourcepage|destpage)\((.*)\)$/) {
|
||||
if ((exists $params{all} && lc $params{all} eq "no") ||
|
||||
# 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)\((.*)\)$/) {
|
||||
add_depends($params{page}, "$params{test} and $params{page}");
|
||||
$result=pagespec_match($params{page}, $params{test},
|
||||
location => $params{page},
|
||||
sourcepage => $params{page},
|
||||
|
|
|
@ -14,7 +14,7 @@ sub preprocess (@) { #{{{
|
|||
|
||||
foreach my $param (qw{match pagespec}) {
|
||||
if (! exists $params{$param}) {
|
||||
return "[[testpagespec missing $param parameter]]";
|
||||
return "[[testpagespec $param parameter is required]]";
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -9,8 +9,11 @@ ikiwiki (2.1) UNRELEASED; urgency=low
|
|||
in.
|
||||
* Make testpagespec more robust, including checking for missing/bad
|
||||
parameters.
|
||||
* Add all=no option to conditional, can be used to form conditionals that do
|
||||
not need to examine every page in the wiki.
|
||||
* Use this to simplify the goodstuff detection in the plugin template.
|
||||
|
||||
-- Joey Hess <joeyh@debian.org> Tue, 08 May 2007 17:21:13 -0400
|
||||
-- Joey Hess <joeyh@debian.org> Tue, 08 May 2007 20:12:25 -0400
|
||||
|
||||
ikiwiki (2.00) unstable; urgency=low
|
||||
|
||||
|
|
|
@ -18,8 +18,14 @@ quotes to be included.
|
|||
The `test` is a [[PageSpec]]; if it matches any page in the wiki then it
|
||||
succeeds. So you can do things like testing for the existence of a page or
|
||||
pages, testing to see if any pages were created in a given month, and so
|
||||
on. The regular [[PageSpec]] syntax is expanded with the following
|
||||
additional tests:
|
||||
on.
|
||||
|
||||
If you want the [[PageSpec]] to only match against the page that
|
||||
contains the conditional, rather than matching against all pages in the
|
||||
wiki, set the "all" parameter to "no".
|
||||
|
||||
The regular [[PageSpec]] syntax is expanded with the following additional
|
||||
tests:
|
||||
|
||||
* enabled(plugin)
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@ Plugin: <TMPL_VAR name><br />
|
|||
Author: <TMPL_VAR author><br />
|
||||
Included in ikiwiki: [[if test="sourcepage(plugins/contrib/*)" then="""no""" else="""yes"""]]<br />
|
||||
Enabled by default: <TMPL_IF core>yes<TMPL_ELSE>no</TMPL_IF><br />
|
||||
Included in [[/plugins/goodstuff]]: [[if test="backlink(plugins/goodstuff) and glob(plugins/<TMPL_VAR name>) and !sourcepage(plugins/contrib/*)" then="""yes""" else="""no"""]]<br />
|
||||
Included in [[/plugins/goodstuff]]: [[if test="backlink(plugins/goodstuff)" all=no then="""yes""" else="""no"""]]<br />
|
||||
Currently enabled: [[if test="enabled(<TMPL_VAR name>)" then="yes" else="no"]]<br />
|
||||
</span>
|
||||
[[if test="sourcepage(plugins/contrib/*)" then="""[[meta title="<TMPL_VAR name> (third party plugin)"]]"""]]
|
||||
|
|
Loading…
Reference in New Issue