Jump to content

Module:For

From Meta, a Wikimedia project coordination wiki
Module documentation

local export = {}

function export.render(frame)
	local for_args = frame:getParent().args

	local tname = for_args.call or "1x"
	local sep = for_args[1]
	local pv = for_args.pv or "1"
	local prefix = for_args.prefix or ""
	local suffix = for_args.suffix or for_args.postfix or ""
	local pc = {}

	local output = {}

	local i = 1
	while for_args["pc" .. i .. "n"] do
		local pnam = for_args["pc" .. i .. "n"]
		local pval = for_args["pc" .. i .. "v"]
		pc[pnam] = pval
		i = i + 1
	end

	i = 2
	while for_args[i] do
		local args = mw.clone(pc)
		args[pv] = prefix .. for_args[i] .. suffix

		if output[1] then
			output[#output + 1] = sep
		end
		output[#output + 1] = frame:expandTemplate {
			title = tname,
			args = args
		}
		i = i + 1
	end

	return table.concat(output)
end

return export