Module:Check for unknown parameters: Difference between revisions

From the Croc Wiki, the Croc encyclopedia
Jump to navigationJump to search
Content added Content deleted
(Undid revision 880284391 by Frietjes (talk) didn't work)
(update from sandbox to sanitize displayed parameters, replacing strip markers with "<tag>...</tag>" per User talk:Johnuniq#Check for unknown parameters)
Line 9:
 
local function isnotempty(s)
return s and trim(s) ~= :match('%S')
end
 
local function clean(text)
-- Return text cleaned for display and truncated if too long.
-- Strip markers are replaced with dummy text representing the original wikitext.
local pos, truncated
local function truncate(text)
if truncated then
return ''
end
if mw.ustring.len(text) > 25 then
truncated = true
vtext = mw.ustring.sub(vtext, 1, (vlen < 25) and.. vlen or 25)'...'
end
return mw.text.nowiki(text)
end
local parts = {}
for before, tag, remainder in text:gmatch('([^\127]*)\127[^\127]*%-(%l+)%-[^\127]*\127()') do
pos = remainder
table.insert(parts, truncate(before) .. '&lt;' .. tag .. '&gt;...&lt;/' .. tag .. '&gt;')
end
table.insert(parts, truncate(text:sub(pos or 1)))
return table.concat(parts)
end
 
Line 15 ⟶ 38:
local args = frame.args
local pargs = frame:getParent().args
local ignoreblank = isnotempty(frame.args['ignoreblank'])
local showblankpos = isnotempty(frame.args['showblankpositional'])
local knownargs = {}
local unknown = frame.args['unknown'] or 'Found _VALUE_, '
local preview = frame.args['preview']
 
local values = {}
Line 44 ⟶ 67:
if type(k) == 'string' and knownargs[k] == nil then
local knownflag = false
for i_, regexp in ipairs(regexps) do
if mw.ustring.match(k, regexp) then
knownflag = true
Line 51 ⟶ 74:
end
if not knownflag and ( not ignoreblank or isnotempty(v) ) then
table.insert(values, clean(k))
k = mw.text.encode(mw.text.encode(k),'%c%[%]=')
table.insert(values, k)
end
elseif type(k) == 'number' and
Line 58 ⟶ 80:
( showblankpos or isnotempty(v) )
then
localtable.insert(values, vlenk .. ' = mw' .ustring.len clean(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
 
-- add resulsresults to the output tables
if #values > 0 then
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