Módulo:Check for unknown parameters
-- This module may be used to compare the arguments passed to the parent-- with a list of arguments, returning a specified result if an argument is-- not on the listlocal p = {}local function trim(s)return s:match('^%s*(.-)%s*$')endlocal function isnotempty(s)return s and s:match('%S')endlocal 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, truncatedlocal function truncate(text)if truncated thenreturn ''endif mw.ustring.len(text) > 25 thentruncated = truetext = mw.ustring.sub(text, 1, 25) .. '...'endreturn mw.text.nowiki(text)endlocal parts = {}for before, tag, remainder in text:gmatch('([^\127]*)\127[^\127]*%-(%l+)%-[^\127]*\127()') dopos = remaindertable.insert(parts, truncate(before) .. '<' .. tag .. '>...</' .. tag .. '>')endtable.insert(parts, truncate(text:sub(pos or 1)))return table.concat(parts)endfunction p.check (frame)local args = frame.argslocal pargs = frame:getParent().argslocal ignoreblank = isnotempty(args['ignoreblank'])local showblankpos = isnotempty(args['showblankpositional'])local knownargs = {}local unknown = args['unknown'] or 'Found _VALUE_, 'local preview = args['preview']local values = {}local res = {}local regexps = {}-- create the list of known args, regular expressions, and the return stringfor k, v in pairs(args) doif type(k) == 'number' thenv = trim(v)knownargs[v] = 1elseif k:find('^regexp[1-9][0-9]*$') thentable.insert(regexps, '^' .. v .. '$')endendif isnotempty(preview) thenpreview = '<div class="hatnote" style="color:red"><strong>Aviso:</strong> ' .. preview .. ' (esta mensagem é mostrada somente em antevisão).</div>'elseif preview == nil thenpreview = unknownend-- loop over the parent args, and make sure they are on the listfor k, v in pairs(pargs) doif type(k) == 'string' and knownargs[k] == nil thenlocal knownflag = falsefor _, regexp in ipairs(regexps) doif mw.ustring.match(k, regexp) thenknownflag = truebreakendendif not knownflag and ( not ignoreblank or isnotempty(v) ) thentable.insert(values, clean(k))endelseif type(k) == 'number' andknownargs[tostring(k)] == nil and( showblankpos or isnotempty(v) )thentable.insert(values, k .. ' = ' .. clean(v))endend-- add results to the output tablesif #values > 0 thenif frame:preprocess( "{{REVISIONID}}" ) == "" thenunknown = previewendfor _, v in pairs(values) doif v == '' then-- Fix odd bug for | = which gets stripped to the empty string and-- breaks category linksv = ' 'end-- avoid error with v = 'example%2' ("invalid capture index")local r = unknown:gsub('_VALUE_', {_VALUE_ = v})table.insert(res, r)endendreturn table.concat(res)endreturn p
🔥 Top keywords: Wikipédia:Página principalEspecial:PesquisarChatGPTJacqueline LaurenceEduardo Pereira RodriguesCleópatraCampeonato Europeu de FutebolLuciano da Rocha NevesFicheiro:Logotipo da GloboNews.pngEdson FieschiHouse of the DragonKylian MbappéCampeonato Europeu de Futebol de 2024Jogos Olímpicos de Verão de 2024Sony ChannelYouTubeAntoine GriezmannMaya MassaferaCanal BrasilBridgertonCampeonato Europeu de Futebol de 2020BrasilAMBEVMichel LaurenceCristiano RonaldoCopa AméricaEslováquia17 de junhoCopa do Mundo FIFAFalamansaCopa América de 2024EscadinhaChéquiaJuan Paiva24 Horas de Le MansSegunda Guerra MundialChico BuarqueEd SheeranJogo do bicho