check For Unknown Parameters

Documentation for this module may be created at Modiwl:Check for unknown parameters/doc

-- 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 list local p = {}  local function trim(s) return s:match('^%s*(.-)%s*$') end  local function isnotempty(s) return s and trim(s) ~= '' end  function p.check (frame) local args = frame.args local pargs = frame:getParent().args local ignoreblank = isnotempty(frame.args['ignoreblank']) local checkpos = isnotempty(frame.args['checkpositional']) local knownargs = {} local unknown = frame.args['unknown'] or 'Found _VALUE_, ' local preview = frame.args['preview']  local res = {} 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 for k, v in pairs(args) do if type(k) == 'number' then v = trim(v) knownargs[v] = 1 elseif k:find('^regexp[1-9][0-9]*$') then table.insert(regexps, '^' .. v .. '$') end end if isnotempty(preview) then  preview = '
Warning: ' .. preview .. ' (this message is shown only in preview).
'
elseif preview == nil then 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 -- loop over the parent args, and make sure they are on the list for k, v in pairs(pargs) do 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 break end end if not knownflag and ( not ignoreblank or isnotempty(v) ) then k = mw.ustring.gsub(k, '[^%w\-_ ]', '?') addresult(k) end elseif checkpos and type(k) == 'number' and knownargs[tostring(k)] == nil and ( not ignoreblank or isnotempty(v) ) then addresult(k) end end if #comments > 0 then commentstr = '' end return table.concat(res) .. commentstr end return p

Tags:

🔥 Trending searches on Wiki Cymraeg:

Rhyw geneuolDakota County, NebraskaLumberport, Gorllewin VirginiaAnnapolis, MarylandSchleswig-HolsteinFrancis AtterburyLonoke County, ArkansasJapanMab DaroganJohn Eldon BankesCedar County, NebraskaCharmion Von WiegandKeanu ReevesNatalie PortmanByseddu (rhyw)Rhyfel Cartref SyriaMeigs County, OhioJwrasig HwyrAnsbachHoward County, ArkansasQuentin DurwardFontanarrosa, Lo Que Se Dice Un ÍdoloR. H. RobertsCellbilenHamesima XMorocoCass County, NebraskaWilliams County, OhioMaurizio PolliniAnifailJafanegLincoln County, NebraskaRhif Llyfr Safonol RhyngwladolSaline County, NebraskaDouglas County, NebraskaSeneca County, OhioMiller County, ArkansasDydd Gwener y GroglithUrdd y BaddonRhestr o Siroedd OregonCyfarwyddwr ffilmPrifysgol TartuCân Hiraeth Dan y LleuferInstagramMineral County, MontanaFreedom StrikeStarke County, IndianaA. S. ByattButler County, NebraskaSimon BowerPerkins County, NebraskaY Dadeni DysgParis20 GorffennafConway County, ArkansasEdna LumbLlwgrwobrwyaeth2019Siarl III, brenin y Deyrnas UnedigOrgan (anatomeg)Mabon ap GwynforBranchburg, New JerseyWicipedia1992Arwisgiad Tywysog CymruMentholWinslow Township, New JerseyCrawford County, ArkansasClementina Carneiro de MouraSomething in The WaterDallas County, Missouri🡆 More