Jump to content

Module:For

From Philosophical Research
Revision as of 05:05, 21 January 2026 by Reversedragon (talk | contribs) (copy from mediawiki.org page "Module:For", time 2024-06-15T04:30Z)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Template parameters

  • 1 - separator to put between template calls
  • pv - parameter to iterate over
  • start - minimum value to start the loop at
  • stop - final value to end the loop at
  • by - number to increment by
  • call - Template to call on each run of the loop
  • pcXn,pcXv - parameters to supply to loop

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