Module:QuoteSlider
From Heterodontosaurus Balls
Documentation for this module may be created at Module:QuoteSlider/doc
local QuoteSlider = {}
local getArgs = require('Module:Arguments').getArgs
local function buildSlide(content)
-- Wrap each quote safely so table syntax renders properly
local slide = mw.html.create('div')
:addClass('quote-slider__slide')
:addClass('fade')
-- Instead of direct HTML nodes, just append the wikitext (tables render fine)
slide:wikitext('\n' .. content .. '\n')
return slide
end
function QuoteSlider.slider(frame)
local args = getArgs(frame)
local container = mw.html.create('div')
:addClass('quote-slider__container')
:addClass('mw-parser-output')
local dots = mw.html.create('div'):addClass('quote-slider__dots')
local i = 1
while args['s' .. i] do
container:node(buildSlide(args['s' .. i]))
dots:tag('span')
:addClass('quote-slider__dot')
:attr('data-slide', i)
i = i + 1
end
container:tag('div')
:addClass('quote-slider__prev')
:wikitext('❮')
container:tag('div')
:addClass('quote-slider__next')
:wikitext('❯')
container:node(dots)
return tostring(container)
end
return QuoteSlider
