Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Documentation for this module may be created at Module:Carousel/doc

local p = {}

function p.render(frame)
	local args = frame:getParent().args

	-- Collect all numeric parameter keys (skips Ncap, Nalt etc.)
	local indices = {}
	for k, v in pairs(args) do
		local n = tonumber(k)
		if n and v and v ~= '' then
			table.insert(indices, n)
		end
	end
	table.sort(indices)

	local slides = {}
	for _, i in ipairs(indices) do
		local key  = tostring(i)
		local file = args[key]
		local alt  = args[key .. 'alt'] or ''
		local cap  = args[key .. 'cap']

		local slide = '<div class="lw-carousel-slide">[[File:' .. file
			.. '|1200px|class=lw-carousel-img|alt=' .. alt .. ']]'
		if cap and cap ~= '' then
			slide = slide .. '<div class="lw-carousel-caption">' .. cap .. '</div>'
		end
		slide = slide .. '</div>'

		table.insert(slides, slide)
	end

	return '<div class="lw-carousel">\n<div class="lw-carousel-track" tabindex="0">'
		.. table.concat(slides)
		.. '</div>\n</div>'
end

return p