Module:Check for unknown parameters: Difference between revisions

reduce REVISIONID checks per thread at https://en.wikipedia.org/w/index.php?title=Wikipedia:Village_pump_%28technical%29&oldid=725747331#Preview-only_template_warnings_using_REVISIONID_magic_word
en>Frietjes
(include non-blank positional in the default, but excluded blank positional in the default)
en>Frietjes
(reduce REVISIONID checks per thread at https://en.wikipedia.org/w/index.php?title=Wikipedia:Village_pump_%28technical%29&oldid=725747331#Preview-only_template_warnings_using_REVISIONID_magic_word)
Line 21: Line 21:
local preview = frame.args['preview']
local preview = frame.args['preview']


local values = {}
local res = {}
local res = {}
local regexps = {}
local regexps = {}
local comments = {}
local commentstr = ''
local ispreview = frame:preprocess( "{{REVISIONID}}" ) == "" and 1 or 0


-- create the list of known args, regular expressions, and the return string
-- create the list of known args, regular expressions, and the return string
Line 41: Line 38:
elseif preview == nil then
elseif preview == nil then
preview = unknown
preview = unknown
end
if ispreview == 1 then
unknown = preview
ignoreblank = false
end
-- adds one result to the output tables
local function addresult(k)
if k == '' then
-- Fix odd bug for | = which gets stripped to the empty string and
-- breaks category links
k = ' '
end
local r = unknown:gsub('_VALUE_', k)
table.insert(res, r)
table.insert(comments, '"' .. k .. '"')
end
end


Line 71: Line 52:
if not knownflag and ( not ignoreblank or isnotempty(v) )  then
if not knownflag and ( not ignoreblank or isnotempty(v) )  then
k = mw.ustring.gsub(k, '[^%w\-_ ]', '?')
k = mw.ustring.gsub(k, '[^%w\-_ ]', '?')
addresult(k)
table.insert(values, k)
end
end
elseif type(k) == 'number' and  
elseif type(k) == 'number' and  
Line 77: Line 58:
( showblankpos or isnotempty(v) )
( showblankpos or isnotempty(v) )
then
then
addresult(k)
table.insert(values, k)
end
end
end
end


if #comments > 0 then
-- add resuls to the output tables
commentstr = '<!-- Module:Check for unknown parameters results: ' ..
if #values > 0 then
table.concat(comments, ', ') .. '-->'
if frame:preprocess( "{{REVISIONID}}" ) == "" then
unknown = preview
end
for k, v in pairs(values) do
if v == '' then
-- Fix odd bug for | = which gets stripped to the empty string and
-- breaks category links
v = ' '
end
local r =  unknown:gsub('_VALUE_', v)
table.insert(res, r)
end
end
end
 
return table.concat(res) .. commentstr
return table.concat(res)
end
end


return p
return p
Anonymous user