Module:yesno

Neet di̱ Swánga̱lyiatwuki

This module returns a function that will convert various values to false or true. It can be used to interpret boolean template parameters, if Module:parameters is not being used.


-- 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 booleans = {
	[true] = true, [false] = false,
	["true"] = true, ["false"] = false,
	[1] = true, [0] = false,
	["1"] = true, ["0"] = false,
	["yes"] = true, ["no"] = false,
	["y"] = true, ["n"] = false,
	["t"] = true, ["f"] = false,
	["on"] = true, ["off"] = false,
}

return function (val, default)
	if val == nil then
		return nil
	elseif type(val) == "string" then
		val = lower(val)
	end
	if booleans[val] ~= nil then
		return booleans[val]
	end
	return default
end