Modul:Icon: Unterschied zwischen den Versionen

Aus skandinavien-wiki.net
(add default empty alt text for icons. There is probably an elegant way to provide real alt text if it is desirable to do so.)
(per Jonesey, add ability to set alt from stored icon)
Zeile 24: Zeile 24:
end
end
return string.format(
return string.format(
'[[File:%s%s%s|%s|class=noviewer|alt=]]',
'[[File:%s%s%s|%s|class=noviewer|alt=%s]]',
iconData.image,
iconData.image,
iconData.tooltip and '|' .. iconData.tooltip or '',
iconData.tooltip and '|' .. iconData.tooltip or '',
iconData.link == false and '|link=' or '',
iconData.link == false and '|link=' or '',
args.size or '16x16px'
args.size or '16x16px',
iconData.alt or ''
)
)
end
end

Version vom 15. Januar 2022, 17:48 Uhr

Die Dokumentation für dieses Modul kann unter Modul:Icon/doc erstellt werden

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

require("Module:No globals")
local yesNo = require("Module:Yesno")
local getArgs = require("Module:Arguments").getArgs
local getPlain = nil

local p = {}

-- Implements [[Template:Icon]]
-- Returns the icon image corresponding to a string (like 'B')
function p._main(args, data)
	local inSandbox = yesNo(args.sandbox)
	local data_module = 'Module:Icon/data'..(inSandbox and '/sandbox' or '')
	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|alt=%s]]',
		iconData.image,
		iconData.tooltip and '|' .. iconData.tooltip or '',
		iconData.link == false and '|link=' or '',
		args.size or '16x16px',
		iconData.alt or ''
	)
end

-- Implements [[Template:Icon link]], a superset of [[Template:Icon]]
-- Returns an icon, plus a suitably formatted wikilink
function p._link(args, data)
	args.size = args.size or args.iconsize
	local icon = p._main(args, data)
	-- If no link given in args[2], default back to [[Template:Icon]]
	if not args[2] then
		return icon
	end
	-- Strip wiki markup out of link
	getPlain = getPlain or require("Module:Text").Text().getPlain
	local link = getPlain(args[2])
	local display = args[3] or args[2]
	-- italicize display string, if requested
	if yesNo(args.i) or yesNo(args.italic) or yesNo(args.italics) then
		display = '<i>'..display..'</i>'
	end
	-- if display is link, just use standard wlink
	if link == display then
		return icon..'&nbsp;[['..link..']]'
	end
	return icon..'&nbsp;[['..link..'|'..display..']]'
end

function p.main(frame)
	local args = getArgs(frame,{parentFirst=true})
	return p._main(args)
end

function p.link(frame)
	local args = getArgs(frame,{parentFirst=true})
	return p._link(args)
end

return p