(Created page with "-- 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 =...") |
PabloEscobar (talk | contribs) m (1 revision imported: starcitizen tools) |
||
(2 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
-- Imported from: https://en.wikipedia.org/wiki/Module:Yesno | |||
-- Function allowing for consistent treatment of boolean-like wikitext input. | -- Function allowing for consistent treatment of boolean-like wikitext input. | ||
-- It works similarly to the template {{yesno}}. | -- It works similarly to the template {{yesno}}. | ||
return function (val, default) | 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 val == 'on' | |||
or val == 'ja' | |||
or tonumber(val) == 1 | |||
then | |||
return true | |||
elseif val == false | |||
or val == 'no' | |||
or val == 'n' | |||
or val == 'false' | |||
or val == 'f' | |||
or val == 'off' | |||
or val == 'nein' | |||
or tonumber(val) == 0 | |||
then | |||
return false | |||
else | |||
return default | |||
end | |||
end | end |
Latest revision as of 18:13, 7 November 2023
This documentation is transcluded from Module:Yesno/doc. Changes can be proposed in the talk page.
This template is imported from Module:Yesno on Wikipedia.
This template is imported from the English Wikipedia. Although the visual appearance might be different, the functionality is identical. Please refer to the Module:Yesno page on Wikipedia for detailed documentation.
Module:Yesno provides a consistent interface for processing boolean or boolean-style string input. While Lua allows the true
and false
boolean values, wikicode templates can only express boolean values through strings such as "yes", "no", etc. This module processes these kinds of strings and turns them into boolean input for Lua to process. It also returns nil
values as nil
, to allow for distinctions between nil
and false
. The module also accepts other Lua structures as input, i.e. booleans, numbers, tables, and functions. If it is passed input that it does not recognise as boolean or nil
, it is possible to specify a default value to return.
-- Imported from: https://en.wikipedia.org/wiki/Module:Yesno
-- 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 val == 'on'
or val == 'ja'
or tonumber(val) == 1
then
return true
elseif val == false
or val == 'no'
or val == 'n'
or val == 'false'
or val == 'f'
or val == 'off'
or val == 'nein'
or tonumber(val) == 0
then
return false
else
return default
end
end