Jump to content

Module:For nowiki

Permanently protected module
From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Pppery (talk | contribs) at 01:41, 14 November 2017. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

local p = {}

function p.main(frame)
	local args = frame:getParent().args
	local sep = args[1]
	local code = mw.text.unstripNoWiki(args.code or args[2])
	local offset = args.code and 1 or 2
	
	local result = ""
	local argstosub = {}
	local iterator
	for key, value in pairs(args) do
		if not tonumber(key) and key ~= "i" and key ~= "cnt" then
			argstosub[key] = value
		end
	end
	local cntArg = args.cnt and tonumber(args.cnt);
	if cntArg then
		offset = 0
		args = {}
		for i = 1, cntArg do
		   args[i] = i
		end
	end
	for i, value in ipairs(args) do
		if i > offset + 1 then
			result = result .. sep
		end
		if i > offset then
			argstosub["i"] = i - offset
			argstosub["1"] = value
			local actualCode = code:gsub("{{{([^{}|]*)|?[^{}]*}}}", argstosub)
			result = result .. frame:preprocess(actualCode)
		end
	end
	
	return result
end

return p