Module:Icon: Difference between revisions

Nothing to hide, but nothing to show you either.
Jump to navigation Jump to search
(get the args with pairs so that we don't fetch args.size and args.class from the frame object every time)
m (Protected Module:Icon: High-risk Lua module ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite)))
(No difference)

Revision as of 10:26, 23 January 2015

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

-- This module implements [[Template:Icon]].

local data = mw.loadData('Module:Icon/data')

local p = {}

function p._main(args)
	local code = args.class or args[1]
	local iconData
	if code then
		code = code:match('^%s*(.-)%s*$'):lower() -- trim whitespace and put in lower case
		iconData = data[code]
	end
	if not iconData then
		iconData = data._DEFAULT
	end
	return string.format(
		'[[File:%s%s|%s|link=]]',
		iconData.image,
		iconData.tooltip and '|' .. iconData.tooltip or '',
		args.size or '16x16px'
	)
end

function p.main(frame)
	local args = {}
	for k, v in pairs(frame:getParent().args) do
		args[k] = v
	end
	return p._main(args)
end

return p