Jump to content

Module:Icon: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
add the noviewer class to the link to stop the icons from being displayed in the media viewer (see Special:PermaLink/1041113542#Appearance in the Media Viewer)
suppress links for modules where the "link" field in the data table is false
Line 1: Line 1:
-- This module implements [[Template:Icon]].
-- This module implements [[Template:Icon]].


require("Module:No globals")
local data = mw.loadData('Module:Icon/data')


local DATA_MODULE = 'Module:Icon/data'
local p = {}
local p = {}


function p._main(args)
function p._main(args, data)
data = data or mw.loadData(DATA_MODULE)
local code = args.class or args[1]
local code = args.class or args[1]
local iconData
local iconData
Line 16: Line 18:
end
end
return string.format(
return string.format(
'[[File:%s%s|%s|class=noviewer]]',
'[[File:%s%s%s|%s|class=noviewer]]',
iconData.image,
iconData.image,
iconData.tooltip and '|' .. iconData.tooltip or '',
iconData.tooltip and '|' .. iconData.tooltip or '',
iconData.link == false and '|link=' or '',
args.size or '16x16px'
args.size or '16x16px'
)
)

Revision as of 08:14, 29 August 2021

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

require("Module:No globals")

local DATA_MODULE = 'Module:Icon/data'
local p = {}

function p._main(args, data)
	data = data or mw.loadData(DATA_MODULE)
	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|%s|class=noviewer]]',
		iconData.image,
		iconData.tooltip and '|' .. iconData.tooltip or '',
		iconData.link == false and '|link=' 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