Ovaj modul je u beta verziji i spreman je za široku upotrebu. Na drugu stranu je još ipak nov, i trebalo bi se sa oprezom koristiti da bi se osigurali korektni rezultati.
Ovaj modul je implementacija šablona {{for loop}}. Pogledati dokumentacija šablona za više informacija.
-- This module implements {{for loop}}.localgetArgs=require('Module:Arguments').getArgslocalyesno=require('Module:Yesno')localmakeTemplate=require('Module:Template invocation').invocationp={}functionp.main(frame)localargs=getArgs(frame,{trim=false,removeBlanks=false})returnp._main(args)endfunctionp._main(args)localtemplate=args['call']or'void'localcalltemplates=yesno(args.substallor"",true)ornotmw.isSubsting()localvariableParam=args.pvvariableParam=tonumber(variableParam)orvariableParamor1-- fix for positional parameterslocalvariableValPrefix=args.prefixor''localvariableValPostfix=args.postfixor''localsep=args[1]or''localconstantArgs=p.getConstants(args)localvariableVals=p.getVariableVals(args)localresult=''localaddSeparator=false;fori,vinipairs(variableVals)dov=mw.text.trim(v)-- trim whitespaceif#v>0ornotyesno(args.skipBlanks)thenifaddSeparatorthenresult=result..sependaddSeparator=true;localtargs=constantArgstargs[variableParam]=variableValPrefix..v..variableValPostfixifcalltemplatesthenresult=result..p.callTemplate(template,targs)elseresult=result..makeTemplate(template,targs)endendendreturnresultendfunctionp.getConstants(args)localconstantArgNums=p.getArgNums(args,'pc','n')localconstantArgs={}for_,numinipairs(constantArgNums)dolocalkeyArg='pc'..tostring(num)..'n'localvalArg='pc'..tostring(num)..'v'localkey=args[keyArg]key=tonumber(key)orkeylocalvalue=args[valArg]constantArgs[key]=valueendreturnconstantArgsendfunctionp.getVariableVals(args)localvariableVals={}fori,vinipairs(args)doifi~=1thenvariableVals[i-1]=vendendreturnvariableValsendfunctionp.getArgNums(args,prefix,suffix)-- Returns a table containing the numbers of the arguments that exist-- for the specified prefix and suffix.localnums={}localpattern='^'..prefix..'([1-9]%d*)'..suffix..'$'fork,vinpairs(args)dolocalnum=tostring(k):match(pattern)ifnumthennums[#nums+1]=tonumber(num)endendtable.sort(nums)returnnumsendfunctionp.callTemplate(template,targs)returnmw.getCurrentFrame():expandTemplate{title=template,args=targs}endreturnp