Module:yesno: Difference between revisions
Jump to navigation
Jump to search
Created page with "-- Function allowing for consistent treatment of boolean-like wikitext input. -- It works similarly to the template {{yesno}}. return function (val, default) val = type(va..." |
No edit summary |
||
| Line 1: | Line 1: | ||
-- 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}}. | ||
local lower = string.lower | |||
local type = type | |||
local yesno | |||
return function (val, default) | return function (val, default) | ||
if val == nil then | |||
return nil | |||
elseif not yesno then | |||
yesno = { | |||
[true] = true, [false] = false, | |||
["true"] = true, ["false"] = false, | |||
["t"] = true, ["f"] = false, | |||
[1] = true, [0] = false, | |||
["1"] = true, ["0"] = false, | |||
["yes"] = true, ["no"] = false, | |||
["y"] = true, ["n"] = false, | |||
["on"] = true, ["off"] = false, | |||
} | |||
end | |||
local ret = yesno[val] | |||
if ret ~= nil then | |||
return ret | |||
elseif type(val) ~= "string" then | |||
return default | |||
end | |||
ret = yesno[lower(val)] | |||
if ret ~= nil then | |||
return ret | |||
end | |||
return default | |||
end | end | ||
Revision as of 21:11, 16 November 2025
- This module lacks a documentation subpage. Please create it.
- Useful links: subpage list • links • transclusions • testcases • sandbox
-- Function allowing for consistent treatment of boolean-like wikitext input.
-- It works similarly to the template {{yesno}}.
local lower = string.lower
local type = type
local yesno
return function (val, default)
if val == nil then
return nil
elseif not yesno then
yesno = {
[true] = true, [false] = false,
["true"] = true, ["false"] = false,
["t"] = true, ["f"] = false,
[1] = true, [0] = false,
["1"] = true, ["0"] = false,
["yes"] = true, ["no"] = false,
["y"] = true, ["n"] = false,
["on"] = true, ["off"] = false,
}
end
local ret = yesno[val]
if ret ~= nil then
return ret
elseif type(val) ~= "string" then
return default
end
ret = yesno[lower(val)]
if ret ~= nil then
return ret
end
return default
end