本说明嵌入自 Module:Yesno/doc。可通过讨论页面修改内容。
本模块尚未被使用本模块尚未被其他模板或模块导入或加载。若被判定错误,请确定模板或模块的说明文档中是否添加
{{Documentation}}
/{{No documentation}}
。
本模板导入自从维基百科上的 Module:Yesno
本模板导入自 英语维基百科。即便两者视觉上存有差异,但功能完全相同。详情请参考维基百科上的 Module:Yesno。
Module:Yesno provides a consistent interface for processing boolean or boolean-style string input. While Lua allows the true
and false
boolean values, wikicode templates can only express boolean values through strings such as "yes", "no", etc. This module processes these kinds of strings and turns them into boolean input for Lua to process. It also returns nil
values as nil
, to allow for distinctions between nil
and false
. The module also accepts other Lua structures as input, i.e. booleans, numbers, tables, and functions. If it is passed input that it does not recognise as boolean or nil
, it is possible to specify a default value to return.
-- 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 tonumber(val) == 1
then
return true
elseif val == false
or val == 'no'
or val == 'n'
or val == 'false'
or val == 'f'
or tonumber(val) == 0
then
return false
else
return default
end
end