« Module:Introduction de page-liste » : différence entre les versions

De Les Archives de Vault-Tec
Kharmitch (discussion | contributions)
mAucun résumé des modifications
Kharmitch (discussion | contributions)
Aucun résumé des modifications
Ligne 1 : Ligne 1 :
local p = {}
local p = {}


local abb = require('Module:Abréviation')
function p._build(frame)
 
function p.build(frame)
local args = require('Module:Outils').extractArgs(frame)
local game    = args['jeu']
local game    = args['jeu']
local gameName = abb.name(game)
local gameName = require( 'Module:Abréviation' ).name(game)
local subject    = args['sujet'] or ''
local subject    = args['sujet'] or ''
Ligne 14 : Ligne 10 :


local mainSubjectLink = args['lien du sujet'] or subject
local mainSubjectLink = args['lien du sujet'] or subject
local categories = args['boîte de contenu'] ~= 'non'
local contentBox = args['catégorie'] ~= 'non'
local intro = ''
local intro = ''
Ligne 30 : Ligne 23 :
"Utilisez le [[Portail:" .. gameName .. "|portail]] pour obtenir une vue d'ensemble du contenu de ''" .. gameName .. "''."
"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')
local intro = mw.html.create('div')
Ligne 57 : Ligne 38 :
local clear = '<div style="clear:both;"></div>'
local clear = '<div style="clear:both;"></div>'
return contentBox .. tostring(intro) .. categories .. toc .. clear
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
end


return p
return p

Version du 6 août 2021 à 13:49

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

local p = {}

function p._build(frame)
	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