Module:DemoTemplate: Difference between revisions

From the Croc Wiki, the Croc encyclopedia
Jump to navigationJump to search
Content added Content deleted
(Created page with 'require('Module:No globals') local newBuffer = require('Module:OutputBuffer') local mt = {} function mt.__index(t, title) return function(frame) local getBu...')
 
(handle = signs in parameters)
Line 11: Line 11:
for k,v in ipairs(frame.args) do
for k,v in ipairs(frame.args) do
ipairsArgs[k] = true
ipairsArgs[k] = true
printf('|%s', v)
if string.find(v, '=', 1, true) then
printf('|%d=%s', k, v)
else
printf('|%s', v)
end
end
end
for k,v in pairs(frame.args) do
for k,v in pairs(frame.args) do
if not ipairsArgs[k] then
if not ipairsArgs[k] then
printf('|%s=%s', k, v)
printf('|%s=%s', string.gsub(k, '=', '{{=}}'), v)
end
end
end
end

Revision as of 01:18, June 11, 2015

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

require('Module:No globals')

local newBuffer = require('Module:OutputBuffer')
local mt = {}

function mt.__index(t, title)
	return function(frame)
		local getBuffer, print, printf = newBuffer()
		printf('{{%s', title)
		local ipairsArgs = {}
		for k,v in ipairs(frame.args) do
			ipairsArgs[k] = true
			if string.find(v, '=', 1, true) then
				printf('|%d=%s', k, v)
			else
				printf('|%s', v)
			end
		end
		for k,v in pairs(frame.args) do
			if not ipairsArgs[k] then
				printf('|%s=%s', string.gsub(k, '=', '{{=}}'), v)
			end
		end
		print('}}')
		return '<code>' .. mw.text.nowiki(getBuffer()) .. '</code> &rarr; ' .. frame:expandTemplate{title = title, args = frame.args}
	end
end

return setmetatable({}, mt)