Module:Introduction de page-liste

La documentation pour ce module peut être créée à Module:Introduction de page-liste/doc

local p = {}

local abb = require('Module:Abréviation')

function p.build(frame)
	local args = require('Module:Outils').extractArgs(frame)
	
	local game     = args['jeu']
	local gameName = abb.name(game)
	
	local subject     = args['sujet'] or ''
	local plural      = (args['pluriel'] or (subject .. 's')):lower()
	local description = args['description']

	local mainSubjectLink = args['lien du sujet'] or subject
	
	local categories = args['boîte de contenu'] ~= 'non'
	local contentBox = args['catégorie'] ~= 'non'
	
	local intro = ''
	if description then
		intro = description
	else
		intro = "Cette page fait l'inventaire des '''" .. plural .. "''' de " .. "''[[" .. gameName .. "]]''."
	end
	
	local puce = {
		"Vous pouvez cliquer sur le nom d'un élément pour obtenir plus d'informations à son sujet.",
		"Si vous voulez en savoir plus sur les " .. plural .. " de la série, vous pouvez vous rendre sur la page suivante : [[" .. mainSubjectLink .. "|" .. subject .. "]].",
		"Utilisez le [[Portail:" .. gameName .. "|portail]] pour obtenir une vue d'ensemble du contenu de ''" .. gameName .. "''."
	}
	
	if categories then
		categories = abb.categories({ game, plural, '*' }) or ''
	else
		categories = ''
	end
	
	if contentBox then
		contentBox = require('Module:Boîte de contenu de jeu').build({ args = { nom = gameName }})
	else
		contentBox = ''
	end
	
	local intro = mw.html.create('div')
		:addClass('avt-introduction')
		:tag('p')
			:wikitext(intro)
			:done()
		:tag('ul')
			:tag('li'):wikitext(puce[1]):done()
			:tag('li'):wikitext(puce[2]):done()
			:tag('li'):wikitext(puce[3]):done()
		:allDone()
		
	local clear = '<div style="clear:both;">'
		
	return contentBox .. tostring(intro) .. categories .. clear
end

return p