Module:Icon

Nothing to hide, but nothing to show you either.
Revision as of 09:59, 23 January 2015 by m>Mr. Stradivarius (get the args with pairs so that we don't fetch args.size and args.class from the frame object every time)
Jump to navigation Jump to search

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