Diff: Module:Yesno
Comparing revision #1 (2020-04-01 06:27:55) with revision #2 (2023-02-02 02:41:42).
| Old | New |
|---|---|
-- 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 |
-- 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 |
-- should replace "val:lower()" with "mw.ustring.lower(val)" in the |
-- following line. |
-- following line. |
val = type(val) == 'string' and val:lower() or val |
val = type(val) == 'string' and val:lower() or val |
if val == nil then |
if val == nil then |
return nil |
return nil |
elseif val == true |
elseif val == true |
or val == 'yes' |
or val == 'yes' |
or val == 'y' |
or val == 'y' |
or val == 'true' |
or val == 'true' |
or val == 't' |
or val == 't' |
or val == 'on' |
or val == 'on' |
or tonumber(val) == 1 |
or tonumber(val) == 1 |
then |
then |
return true |
return true |
elseif val == false |
elseif val == false |
or val == 'no' |
or val == 'no' |
or val == 'n' |
or val == 'n' |
or val == 'false' |
or val == 'false' |
or val == 'f' |
or val == 'f' |
or val == 'off' |
or val == 'off' |
or tonumber(val) == 0 |
or tonumber(val) == 0 |
then |
then |
return false |
return false |
else |
else |
return default |
return default |
end |
end |
end |
end |