Module:Yesno: Difference between revisions
From MC Animation and Rendering Wiki
More actions
| m →top:  use string instead of mw.ustring, replaced: mw.ustring → string | Standingpad (talk | contribs) m 1 revision imported | ||
| 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}}. | ||
| 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 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 tonumber(val) == 0 | |||
| 	then | |||
| 		return false | |||
| 	else | |||
| 		return default | |||
| 	end | |||
| end | end | ||
Revision as of 05:33, 4 July 2025
Documentation for this module may be created at Module:Yesno/doc
-- 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 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 tonumber(val) == 0
	then
		return false
	else
		return default
	end
end