Module:Introduction de page-liste

De Les Archives de Vault-Tec

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

local p = {}

function p._build(args)
	local game     = args['jeu']
	local gameName = require( 'Module:Abréviation' ).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 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 .. "''."
	}
	
	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 toc   = '__TOC__'
	local clear = '<div style="clear:both;"></div>'
		
	return tostring(intro) .. toc .. clear
end

function p.build(frame)
	local args = {}
	
	local argsParent = frame:getParent().args
	for cle, val in pairs(argsParent) do
		if val then
			val = mw.text.trim(val)
			if val ~= '' then
				args[cle] = mw.text.trim(val)
			end
		end
	end
	
	return p._build(args)
end

return p