|
|
১ নং লাইন: |
১ নং লাইন: |
| local p = {}
| | -- This is a simplified, Lua-only replacement for the template {{yesno}}. It provides a consistent |
| | | -- interface for users entering boolean or boolean-style input. |
| function p.yesno(frame) | | return function (val, default) |
| | | val = type(val) == 'string' and mw.ustring.lower(val) or val -- put in lower case |
| -- defaults | | if not val or val == 'no' or val == 'n' or val == 'false' or tonumber(val) == 0 then |
| local retvals = { | | return false |
| yes = "yes",
| | elseif val == true or val == 'yes' or val == 'y' or val == 'true' or tonumber(val) == 1 then |
| no = "",
| | return true |
| ["¬"] = ""
| | elseif default ~= nil then |
| }
| | return default |
| | |
| -- 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
| |
| end | |
| else | | else |
| -- We're being called from another module or from the debug console, so assume
| | return true |
| -- 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
| |
| return retvals['¬'] | |
| end
| |
| | |
| val = val:lower() -- Make lowercase.
| |
| val = val:match'^%s*(.*%S)' or '' -- Trim whitespace.
| |
| | |
| if val == '' then
| |
| return retvals['blank'] or retvals['no']
| |
| elseif val == 'n' or val == 'no' or tonumber(val) == 0 then
| |
| return retvals['no']
| |
| elseif val == 'y' or val == 'yes' or tonumber(val) == 1 then
| |
| return retvals['yes']
| |
| elseif val == '¬' then
| |
| return retvals['¬']
| |
| else
| |
| return retvals['def'] or retvals['yes']
| |
| end | | end |
| end | | end |
|
| |
| return p
| |