Modul:Galéria

A Wikipédiából, a szabad enciklopédiából

Galéria[mi ez?] • [dokumentáció: mutat, szerkeszt] • [tesztek: létrehozás]

local p = {}
local getArgs = require('Modul:Arguments').getArgs
local galleryattr = {
	caption	= '',
	style	= 'background:transparent; border:1px solid #f0f0f0; margin-top:0.5em;',
	widths	= 180,
	heights	= 180
}

function p.main(frame)
	local args = getArgs(frame)
	local imgs = {}
	local params = {}
	for n, v in pairs(args) do
		if type(n) == 'number' or string.match(n, '^alt%d+$') then
			local i, j
			if type(n) == 'number' then
				i = math.floor((n + 1) / 2)
				j = (n + 1) % 2 + 1
			else
				i = tonumber(string.match(n, '^alt(%d+)$'))
				j = 'alt'
			end
			if imgs[i] then
				imgs[i][j] = v
			else
				imgs[i] = { [j] = v }
			end
		else
			params[n] = v
		end
	end
	local ret = {}
	for _, v in ipairs(imgs) do
		if v[1] then
			local str = v[1]
			if v[2] then
				str = str .. '|' .. v[2]
			end
			if v.alt then
				str = str .. '|alt=' .. v.alt
			end
			table.insert(ret, str)
		end
	end
	local attr = {
		caption	= params.title,
		style	= params.style,
		widths	= tonumber(params.width),
		heights	= tonumber(params.height)
	}
	for n, _ in pairs(galleryattr) do
		if attr[n] then
			galleryattr[n] = attr[n]
		end
	end
	if galleryattr.caption == '' then
		galleryattr.caption = nil
	end
	return mw.getCurrentFrame():extensionTag( 'gallery', '\n' .. table.concat(ret, '\n') .. '\n', galleryattr )
end

return p