模块:Yesno
来自SINO云课堂
This template normalises an input to be a yes/no output.
Usage
The template has five possible outputs depending on the default parameter (input if you will).
In its simplest usage these will all be either "yes" or "" (blank - nothing no characters).
{{yesno|yes}}
result "yes" (also applies to "Yes", "YeS", etc, "Y", "y" and "1"){{yesno|no}}
result "" (also applies to "No", "NO", "nO", "N", "n" and "0"){{yesno}}
result ""{{yesno|¬}}
result ""{{yesno|purplemonkeydishwasher}}
result "yes" (also applies to any other value not given above).
Each of these can be over-ridden.
{{yesno|yes|yes=bacon}}
result "bacon" (also applies to "Yes", "YeS", etc, "Y", "y" and "1"){{yesno|no|no=ham}}
result "ham" (also applies to "No", "NO", "nO", "N", "n" and "0"){{yesno|blank= eggs}}
result "eggs"- but
{{yesno|no=ham}}
result "ham" - and
{{yesno|blank= eggs|no=ham}}
result "eggs"
- but
{{yesno|¬|¬=sausage}}
result "sausage"{{yesno|purplemonkeydishwasher|def=cup-of-tea}}
result "cup-of-tea" (also applies to any other value not given above).- but
{{yesno|purplemonkeydishwasher|yes=bacon}}
result "bacon" - but
{{yesno|purplemonkeydishwasher|def=cup-of-tea|yes=bacon}}
result "cup-of-tea"
- but
This may be used (apparently perversely) thus:
{{yesno|yes|yes=no|no=yes}}
result "no"{{yesno|no|yes=no|no=yes}}
result "yes"
This creates a logical inversion.
See also
-- Function allowing for consistent treatment of boolean-like wikitext input.
-- It works similarly to the template {{yesno}}.
return function (val, default)
-- If your wiki uses non-ascii characters for any of "yes", "no", etc., you
-- should replace "val:lower()" with "mw.ustring.lower(val)" in the
-- following line.
val = type(val) == 'string' and val:lower() or val
if val == nil then
return nil
elseif val == true
or val == 'yes'
or val == 'y'
or val == 'true'
or val == 't'
or tonumber(val) == 1
then
return true
elseif val == false
or val == 'no'
or val == 'n'
or val == 'false'
or val == 'f'
or tonumber(val) == 0
then
return false
else
return default
end
end