Modul:Galéria
Galéria[mi ez?] • [dokumentáció: mutat, ] • [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