Module:Yesno: Difference between revisions
Content deleted Content added
edit inaccurate comment |
change to a simpler Lua-only version |
||
Line 1: | Line 1: | ||
-- This is a simplified, Lua-only replacement for the template {{yesno}}. It provides a consistent |
|||
local p = {} |
|||
-- interface for users entering boolean or boolean-style input. |
|||
function |
return function (val, default) |
||
val = type(val) == 'string' and mw.ustring.lower(val) or val -- put in lower case |
|||
⚫ | |||
-- defaults |
|||
return false |
|||
⚫ | |||
yes = "yes", |
|||
return true |
|||
elseif default ~= nil then |
|||
⚫ | |||
} |
|||
-- Allow arguments to override defaults. |
|||
local args; |
|||
if frame == mw.getCurrentFrame() then |
|||
-- We're being called via #invoke. If the invoking template passed any args, use |
|||
-- them. Otherwise, use the args that were passed into the template. |
|||
args = frame:getParent().args; |
|||
for k, v in pairs(frame.args) do |
|||
args = frame.args; |
|||
break |
|||
⚫ | |||
else |
else |
||
⚫ | |||
-- We're being called from another module or from the debug console, so assume |
|||
-- the args are passed in directly. |
|||
args = frame; |
|||
end |
|||
for k,v in pairs(args) do |
|||
retvals[k] = v |
|||
end |
|||
val = args[1] |
|||
-- First deal with the case if val is nil, then deal with other cases. |
|||
if val == nil then |
|||
⚫ | |||
end |
|||
val = val:lower() -- Make lowercase. |
|||
val = val:match'^%s*(.*%S)' or '' -- Trim whitespace. |
|||
if val == '' then |
|||
return retvals['blank'] or retvals['no'] |
|||
⚫ | |||
return retvals['no'] |
|||
⚫ | |||
return retvals['yes'] |
|||
elseif val == '¬' then |
|||
return retvals['¬'] |
|||
else |
|||
return retvals['def'] or retvals['yes'] |
|||
end |
end |
||
end |
end |
||
return p |
Revision as of 12:23, 20 September 2013
This module has a duplicate on Meta-Wiki. Please visit its documentation on Meta-Wiki for usage details and any additional information. Please keep the content and translations synchronized as much as possible. Thank you! |
This module has a duplicate on Wikidata. Please visit its documentation on Wikidata for usage details and any additional information. Please keep the content and translations synchronized as much as possible. Thank you! |
-- This is a simplified, Lua-only replacement for the template {{yesno}}. It provides a consistent
-- interface for users entering boolean or boolean-style input.
return function (val, default)
val = type(val) == 'string' and mw.ustring.lower(val) or val -- put in lower case
if not val or val == 'no' or val == 'n' or val == 'false' or tonumber(val) == 0 then
return false
elseif val == true or val == 'yes' or val == 'y' or val == 'true' or tonumber(val) == 1 then
return true
elseif default ~= nil then
return default
else
return true
end
end