|
ট্যাগ: মোবাইল সম্পাদনা মোবাইল ওয়েব সম্পাদনা |
(৫ জন ব্যবহারকারী দ্বারা সম্পাদিত ১৪টি মধ্যবর্তী সংশোধন দেখানো হচ্ছে না) |
১ নং লাইন: |
১ নং লাইন: |
| local p = {}
| | -- Function allowing for consistent treatment of boolean-like wikitext input. |
| | -- It works similarly to the template {{yesno}}. |
|
| |
|
| function p.yesno(frame) | | return function (val, default) |
| | | -- If your wiki uses non-ascii characters for any of "yes", "no", etc., you |
| -- defaults
| | -- should replace "val:lower()" with "mw.ustring.lower(val)" in the |
| local retvals = {
| | -- following line. |
| yes = "yes",
| | val = type(val) == 'string' and val:lower() or val |
| no = "",
| | if val == nil then |
| ["¬"] = ""
| | return nil |
| }
| | elseif val == true |
| | | or val == 'yes' |
| -- Allow arguments to override defaults. Arguments are taken from
| | or val == 'y' |
| -- the parent frame; other arguments are ignored.
| | or val == 'true' |
| local args;
| | or val == 't' |
| if frame == mw.getCurrentFrame() then
| | or val == 'on' |
| -- We're being called via #invoke. If the invoking template passed any args, use
| | or tonumber(val) == 1 |
| -- them. Otherwise, use the args that were passed into the template.
| | then |
| args = frame:getParent().args;
| | return true |
| for k, v in pairs(frame.args) do
| | elseif val == false |
| args = frame.args;
| | or val == 'no' |
| break
| | or val == 'n' |
| end
| | or val == 'false' |
| else
| | or val == 'f' |
| -- We're being called from another module or from the debug console, so assume
| | or val == 'off' |
| -- the args are passed in directly.
| | or tonumber(val) == 0 |
| args = frame;
| | then |
| end
| | return false |
|
| | else |
| for k,v in pairs(args) do
| | return default |
| retvals[k] = v
| | end |
| 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 |
|
| |
| return p
| |