Module:For nowiki

local p = {}

local function doLoop(frame, args, code, sep, offset, argstosub) local result = {} code = mw.text.unstripNoWiki(code) for i, value in ipairs(args) do		if i > offset then argstosub["i"] = i - offset argstosub["1"] = value local actualCode = code:gsub("", argstosub) table.insert(result, frame:preprocess(actualCode)) end end return table.concat(result, sep) end

function p.main(frame) local args = frame:getParent.args local sep = args[1] local code = args.code or args[2] local offset = args.code and 1 or 2 local start = args.start or 1 local argstosub = {} for key, value in pairs(args) do		if not tonumber(key) and key ~= "i" and key ~= "count" then argstosub[key] = value end end local countArg = args.count and tonumber(args.count); if countArg then offset = 0 args = {} for i = 1, countArg do		  args[i] = i + start - 1 end end return doLoop(frame, args, code, sep, offset, argstosub) end function p.template(frame) local sep = frame.args[1] local code = frame.args[2] or frame.args.code local offset = tonumber(frame.args.offset) or 0 return doLoop(frame:getParent, frame:getParent.args, code, sep, offset, {}) end return p