Editing Module:Check for unknown parameters
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 9: | Line 9: | ||
local function isnotempty(s) | local function isnotempty(s) | ||
return s and s | return s and trim(s) ~= '' | ||
end | end | ||
function p.check (frame) | |||
local args = frame.args | |||
local pargs = frame:getParent().args | |||
local | local ignoreblank = isnotempty(frame.args['ignoreblank']) | ||
local showblankpos = isnotempty(frame.args['showblankpositional']) | |||
local | |||
local ignoreblank = isnotempty(args['ignoreblank']) | |||
local showblankpos = isnotempty(args['showblankpositional']) | |||
local knownargs = {} | local knownargs = {} | ||
local unknown = args['unknown'] or 'Found _VALUE_, ' | local unknown = frame.args['unknown'] or 'Found _VALUE_, ' | ||
local preview = args['preview'] | local preview = frame.args['preview'] | ||
local values = {} | local values = {} | ||
Line 70: | Line 44: | ||
if type(k) == 'string' and knownargs[k] == nil then | if type(k) == 'string' and knownargs[k] == nil then | ||
local knownflag = false | local knownflag = false | ||
for | for i, regexp in ipairs(regexps) do | ||
if mw.ustring.match(k, regexp) then | if mw.ustring.match(k, regexp) then | ||
knownflag = true | knownflag = true | ||
Line 77: | Line 51: | ||
end | end | ||
if not knownflag and ( not ignoreblank or isnotempty(v) ) then | if not knownflag and ( not ignoreblank or isnotempty(v) ) then | ||
table.insert(values, | k = mw.text.encode(mw.text.encode(k),'%c%[%]=') | ||
table.insert(values, k) | |||
end | end | ||
elseif type(k) == 'number' and | elseif type(k) == 'number' and | ||
Line 83: | Line 58: | ||
( showblankpos or isnotempty(v) ) | ( showblankpos or isnotempty(v) ) | ||
then | then | ||
table.insert(values, k .. ' = ' .. | local vlen = mw.ustring.len(v) | ||
v = mw.ustring.sub(v, 1, (vlen < 25) and vlen or 25) | |||
v = mw.text.encode(mw.text.encode(v),'%c%[%]=') | |||
table.insert(values, k .. ' = ' .. v .. ((vlen >= 25) and ' ...' or '')) | |||
end | end | ||
end | end | ||
-- add | -- add resuls to the output tables | ||
if #values > 0 then | if #values > 0 then | ||
if | if frame:preprocess( "{{REVISIONID}}" ) == "" then | ||
unknown = preview | unknown = preview | ||
end | end | ||
for | for k, v in pairs(values) do | ||
if v == '' then | if v == '' then | ||
-- Fix odd bug for | = which gets stripped to the empty string and | -- Fix odd bug for | = which gets stripped to the empty string and | ||
Line 105: | Line 83: | ||
return table.concat(res) | return table.concat(res) | ||
end | end | ||
return p | return p |