Jump to content

Module:Gallery items

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Frietjes (talk | contribs) at 18:31, 19 December 2018. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

-- this module implements [[template:gallery items]]
local p = {}

function p.main(frame)
	local getArgs = require('Module:Arguments').getArgs
	local args = getArgs(frame)

	local width = tonumber(args.width) or 150

	local items = {}
	for k, v in pairs(args) do
    	if tonumber(k) and math.fmod(k,2) == 1 then
    		local i = math.floor(k/2)
    		local item = mw.html.create('li')
    			:addClass('gallerybox')
    			:css('width', args['width' .. k] or width)
    			:tag('div')
    				:css('width', args['width' .. k] or width)
    				:css('margin', '0 auto')
    				:wikitext(args[k])
    		if args[tonumber(k)+1] then
    			item
    				:tag('div')
    				:addClass('gallerytext')
    				:css('width', args['width' .. k] or width)
    				:css('text-align', args['text-align'] or 'center')
    				:wikitext(args[tonumber(k)+1])
    		end
    		items[i] = tostring(item)
    	end
	end
	local root = mw.html.create('ul')
		:addClass('gallery mw-gallery-nolines nochecker')
		:cssText(args.style)
		:wikitext(table.concat(items))
	
	return frame:extensionTag{ name = 'gallery' } .. tostring(root)
end

return p