Module:Check for unknown parameters

Documentation for this module may be created at Module: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 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(args, pargs)if type(args) ~= "table" or type(pargs) ~= "table" then-- TODO: error handlingreturnend-- create the list of known args, regular expressions, and the return stringlocal 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-- loop over the parent args, and make sure they are on the listlocal 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-- add results to the output tableslocal 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('Module:If preview')._warning({preview_text})elseif preview == nil thenpreview_text = unknown_textendunknown_text = preview_textendfor _, v in pairs(values) do-- Fix odd bug for | = which gets stripped to the empty string and-- breaks category linksif v == '' then v = ' ' end-- avoid error with v = 'example%2' ("invalid capture index")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: Faphegileng:RecentChangesTsebe ya konokonoFaphegileng:SearchMainakgobokaSeretse KhamaBaike: Patlelo ya setšhabaMaeleBatho bantshoSetso sa SetswanaAforika BorwaKarolo:TemplatesQuett MasirePolotoDijo tsa Setswana,BotswanaMoleloPokoAnthony Trevor CopeTshotlakako Mo Basading Le BanaZinedine ZidaneAngie motshegaSetswanaBolwetse jwa Mogare wa Khorona 2019Ama QamataWiki BaikeFocalisticBotswanaMokgweetsi MasisiThuto mo Aforika BorwaNelson MandelaSetso le ngwao ya SetswanaDuma BokoThobalanoChimamanda Ngozi AdichieUnity DowConcepciónAmantle MontshoAyutthaya Province StadiumMpule KwelagobeBikita mineGaboroneZimbabweHo Chi Minh CityBojanala jwa lefatshe la BotswanaSNadia NakaiKereke ya nnete ya ga JesoModirisi:CarsracBotThabo MbekiPuisano:Tsebe ya konokonoIan Khama Seretse KhamaFestus MogaeKarolo:User nlFrank SheeranKarolo:Wikipedians by languageDikgwedi tsa ngwaga ka setswanaAnna MokgethiPatrick SundayAssumption College Sriracha StadiumPuisano ya modirisi:Junior 588FrancistownLetsile TebogoRuth Williams KhamaABatho ba letso la SetswanaThuso MbeduKarolo:StubsModirisi:Mothusi SekhombaThwane(Caracal)LesothoCa MauCuritibaKatse ya maoto a mantshoZambiaBaike: Ka gaAKA (rapper)Shonda RhimesCyan BoujeeModirisi:SnævarMadridFaphegileng:MyTalkCharles IIIArthur H.JohnstoneMerogoElizabeth Wanjiri WathutiDrakePabi CooperLenyaloBoereworsIsaac MakwalaNijel AmosNamibiaPuiso-BathoBakgatla Clan nameKapei mo BotswanaKarolo:User deSespanDijoEgyptTlhaloso ya mafoko a motshameko wa dikarata