Documentation for this module may be created at Module:Var nowiki/doc

local getArgs = require('Module:Arguments').getArgs
local p = {}

local function substituteArgs(frame, code, argstosub)
	local result = {}
	code = mw.text.unstripNoWiki(code)
	local actualCode = code
	for key, value in pairs(argstosub) do
		code = code:gsub("{{{"..key.."}}}", value)
	end
	actualCode = frame:preprocess(actualCode)
	return actualCode
end

function p.main(frame)
	local args = getArgs(frame)
	local code = args.code
	local argstosub = {}
	for key, value in pairs(args) do
		argstosub[key] = value
	end

	return substituteArgs(frame, code, argstosub)
end

return p