Aqbeż għall-kontentut

Module:Check for unknown parameters

Minn Wikipedija, l-enċiklopedija l-ħielsa

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 listlocalp={}localfunctiontrim(s)returns:match('^%s*(.-)%s*$')endlocalfunctionisnotempty(s)returnsands:match('%S')endlocalfunctionclean(text)-- Return text cleaned for display and truncated if too long.-- Strip markers are replaced with dummy text representing the original wikitext.localpos,truncatedlocalfunctiontruncate(text)iftruncatedthenreturn''endifmw.ustring.len(text)>25thentruncated=truetext=mw.ustring.sub(text,1,25)..'...'endreturnmw.text.nowiki(text)endlocalparts={}forbefore,tag,remainderintext:gmatch('([^\127]*)\127[^\127]*%-(%l+)%-[^\127]*\127()')dopos=remaindertable.insert(parts,truncate(before)..'&lt;'..tag..'&gt;...&lt;/'..tag..'&gt;')endtable.insert(parts,truncate(text:sub(posor1)))returntable.concat(parts)endfunctionp._check(args,pargs)iftype(args)~="table"ortype(pargs)~="table"then-- TODO: error handlingreturnendlocalignoreblank=isnotempty(args['ignoreblank'])localshowblankpos=isnotempty(args['showblankpositional'])localknownargs={}localunknown=args['unknown']or'Found _VALUE_, 'localpreview=args['preview']localvalues={}localres={}localregexps={}-- create the list of known args, regular expressions, and the return stringfork,vinpairs(args)doiftype(k)=='number'thenv=trim(v)knownargs[v]=1elseifk:find('^regexp[1-9][0-9]*$')thentable.insert(regexps,'^'..v..'$')endendifisnotempty(preview)thenpreview='<div class="hatnote" style="color:red"><strong>Warning:</strong> '..preview..' (this message is shown only in preview).</div>'elseifpreview==nilthenpreview=unknownend-- loop over the parent args, and make sure they are on the listfork,vinpairs(pargs)doiftype(k)=='string'andknownargs[k]==nilthenlocalknownflag=falsefor_,regexpinipairs(regexps)doifmw.ustring.match(k,regexp)thenknownflag=truebreakendendifnotknownflagand(notignoreblankorisnotempty(v))thentable.insert(values,clean(k))endelseiftype(k)=='number'andknownargs[tostring(k)]==niland(showblankposorisnotempty(v))thentable.insert(values,k..' = '..clean(v))endend-- add results to the output tablesif#values>0thenifmw.getCurrentFrame():preprocess("{{REVISIONID}}")==""thenunknown=previewendfor_,vinpairs(values)doifv==''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")localr=unknown:gsub('_VALUE_',{_VALUE_=v})table.insert(res,r)endendreturntable.concat(res)endfunctionp.check(frame)localargs=frame.argslocalpargs=frame:getParent().argsreturnp._check(args,pargs)endreturnp
close