Modulo:Yesno
Apparentia
Le documentation de iste modulo non existe ancora. Crea lo!
-- Function que permitte le tractamento consequente de entrata wikitexto booleanesc.
-- Copiate, traducite e adaptate de [[:en:Special:Permalink/948473803]]. Licentia: CC BY-SA 4.0.
-- Addite: un interfacie public pro [[Patrono:Bool]].
local yesno = {}
-- Normalisa un valor booleanesc fornite per le usator.
-- Restitue true pro ver, false pro false, nil pro un valor non valide.
local function normalisa(val)
-- Nos conserva intentionalmente le valores anglese, ma adde los de interlingua.
if type(val) == 'string' then
val = val:lower()
end
if val == true
-- interlingua
or val == 'si'
or val == 's'
or val == 'ver'
or val == 'v'
-- anglese
or val == 'yes'
or val == 'y'
or val == 'true'
or val == 't'
or val == 'on'
-- numeric
or tonumber(val) == 1
then
return true
elseif val == false
-- interlingua e anglese
or val == 'no'
or val == 'n'
or val == 'false'
or val == 'f'
-- anglese
or val == 'off'
-- numeric
or tonumber(val) == 0
then
return false
end
return nil
end
-- Interfacie public pro [[Patrono:Bool]].
function yesno.bool(quadro)
local n = normalisa(quadro.args[1])
if n == true then
return '1'
elseif n == false then
return '0'
elseif quadro.args[2] ~= nil and quadro.args[2] ~= '' then
return quadro.args[2]
end
return '?'
end
-- Interfacie original de [[:en:Module:Yesno]].
-- Isto permitte: require('Module:Yesno')(val, predef)
setmetatable(yesno, {
__call = function(_, val, predef)
local n = normalisa(val)
if n == nil then
return predef
end
return n
end
})
return yesno
