Jump to content

Module:Gallery items: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Make the gallery layout more likes the native output in MediaWiki, the width parameter must use integral only.
Remove a controversial class
Line 16: Line 16:
:css('width', ((args['width' .. k] or width)+5) .. 'px')
:css('width', ((args['width' .. k] or width)+5) .. 'px')
item:tag('div')
item:tag('div')
:addClass('thumb')
:css('width', (args['width' .. k] or width) .. 'px')
:css('width', (args['width' .. k] or width) .. 'px')
:css('text-align', args['itemalign'] or 'center')
:css('text-align', args['itemalign'] or 'center')

Revision as of 15:43, 1 September 2019

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

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

	local width = args.width or '150'

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

return p