Jump to content

Module:Series

From Wikisource

require('strict')

local p = {}

local getArgs = require('Module:Arguments').getArgs

local function _series(args)
	local styles = mw.getCurrentFrame():extensionTag('templatestyles', '', {src = 'Template:Series/styles.css'})
	
	local header = mw.html.create('div'):addClass('wst-series-header')
	local header_row = header:tag('div'):tag('div')
	
	-- faux td left: previous page link
	local prev_cell = header_row:tag('div'):addClass('gen_header_backlink searchaux')
	if args.previous then
		prev_cell:tag('p')
			:tag('span')
				:addClass('searchaux seriesprevious')
				:wikitext('←' .. args.previous)
	end
	
	-- faux td center: title
	local title_cell = header_row:tag('div')
		:addClass('gen_header_center_cell')
		:tag('p')
	if args.series then
		title_cell:wikitext(args.series)
	end
	if args.series and args.title then
		title_cell:tag('br')
	end
	if args.title then
		title_cell:tag('span')
			:addClass('gen-header-title')
			:wikitext(args.title)
	end
	
	-- faux td left: next page link
	local next_cell = header_row:tag('div'):addClass('gen_header_forelink searchaux')
	if args['next'] then
		next_cell:tag('p')
			:tag('span')
				:addClass('searchaux seriesnext')
				:wikitext(args['next'] .. '→')
	end
	
	return styles .. tostring(header)
end

function p.series(frame)
	return _series(getArgs(frame))
end

return p