Módulo:Check for unknown parameters

-- Este módulo pode ser usado para comparar os argumentos passados para o parental (superior)-- com uma lista de argumentos, retornando um resultado especificado se um argumento -- não estiver na listarequire ('strict');local p = {}local function trim(s)return s:match('^%s*(.-)%s*$')endlocal function isnotempty(s)return s and s:match('%S')endlocal function clean(text)-- Retorna o texto limpo para exibição e truncado se for muito longo.-- Os marcadores de faixa são substituídos por um texto fictício que-- representa o texto wiki original.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(args, pargs)if type(args) ~= "table" or type(pargs) ~= "table" then-- TODO: Manipulação de errosreturnend -- cria a lista de argumentos conhecidos, expressões regulares e a sequência-- ('string') de retornolocal knownargs = {}local regexps = {}for 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 .. '$')endend-- faz um "loop" sobre os argumentos parentais (superiores) e verifica -- se eles estão na listalocal ignoreblank = isnotempty(args['ignoreblank'])local showblankpos = isnotempty(args['showblankpositional'])local values = {}for 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' and knownargs[tostring(k)] == nil thenlocal knownflag = falsefor _, regexp in ipairs(regexps) doif mw.ustring.match(tostring(k), regexp) thenknownflag = truebreakendendif not knownflag and ( showblankpos or isnotempty(v) ) thentable.insert(values, k .. ' = ' .. clean(v))endendend-- adiciona os resultados às tabelas de saídalocal res = {}if #values > 0 thenlocal unknown_text = args['unknown'] or 'Found _VALUE_, 'if mw.getCurrentFrame():preprocess( "{{REVISIONID}}" ) == "" thenlocal preview_text = args['preview']if isnotempty(preview_text) thenpreview_text = require('Módulo:If preview')._warning({preview_text})elseif preview_text == nil thenpreview_text = unknown_textendunknown_text = preview_textendfor _, v in pairs(values) do-- Corrige (contorna) a falha ('bug') estranha para | = que é removido para-- a sequência ('string') vazia e quebra as ligações ('links') para categoriasif v == '' then v = ' ' end-- evita erro com v = 'example%2' ("índice de captura inválido")local r = unknown_text:gsub('_VALUE_', {_VALUE_ = v})table.insert(res, r)endendreturn table.concat(res)endfunction p.check(frame)local args = frame.argslocal pargs = frame:getParent().argsreturn p._check(args, pargs)endreturn p
🔥 Top keywords: Wikipédia:Página principalDonald TrumpEspecial:PesquisarMelania TrumpElon MuskAcordo de Paris (2015)Barron TrumpLeo BatistaSaudação nazistaFicheiro:Logotipo da GloboNews.pngIvana TrumpIvanka TrumpBRICSLista de presidentes dos Estados UnidosRosângela Lula da SilvaJ. D. VanceCanal do PanamáDroga psicoativaRaphinhaWokeNikolas FerreiraFicheiro:Sergipão - Série A2 Logotipo.pngPresidente dos Estados UnidosCleópatraSaudação romanaBarack ObamaNeymarDonald Trump Jr.Novak DjokovicTiffany TrumpMarla MaplesIdos de MarçoGolfo do MéxicoErika HiltonUsha VancePredefinição:Tabela do Campeonato Brasileiro da Série A - 2025Michelle BolsonaroTiago VolpiJoe BidenNazismoEric TrumpTrace BrasilSundar PichaiGracyanne BarbosaDavid LuizVanessa BarbaraLyancoEstados UnidosBrasilLiga dos Campeões da UEFAFred TrumpBatalha da SalgaPlumas e PaetêsGuilherme de PáduaVitória StradaAMBEVOrganização Mundial da SaúdeFamília TrumpPaula BadosaTieta (telenovela)Cristiano RonaldoAmniotaAinda Estou Aqui (filme de 2024)Jeff BezosJared KushnerInês de RomaLuiz Inácio Lula da SilvaAdolf HitlerLista de presidentes do BrasilRivaldoJennifer AnistonChatGPTCarlos AlcarazBruno LageYouTubeGeorge W. BushVillage PeopleSieg HeilJair BolsonaroMarco RubioBill Clinton21 de janeiroDaniele HypólitoBlanche MonnierRomeu Tuma JúniorAtaque ao Capitólio dos Estados Unidos em 2021Steve BannonDiogo AlmeidaDanilo Luiz da SilvaRubens PaivaSebastião de NarbonaNatércia PontesGronelândiaAyrton SennaMark ZuckerbergDiego HypólitoLewis HamiltonErrol MuskRoberta Miranda