<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://dansunegalaxie.ca/index.php?action=history&amp;feed=atom&amp;title=Module%3ABandeau</id>
	<title>Module:Bandeau - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://dansunegalaxie.ca/index.php?action=history&amp;feed=atom&amp;title=Module%3ABandeau"/>
	<link rel="alternate" type="text/html" href="https://dansunegalaxie.ca/index.php?title=Module:Bandeau&amp;action=history"/>
	<updated>2026-04-04T18:36:19Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.40.1</generator>
	<entry>
		<id>https://dansunegalaxie.ca/index.php?title=Module:Bandeau&amp;diff=45&amp;oldid=prev</id>
		<title>Yuki : 1 version importée : Infobox</title>
		<link rel="alternate" type="text/html" href="https://dansunegalaxie.ca/index.php?title=Module:Bandeau&amp;diff=45&amp;oldid=prev"/>
		<updated>2023-11-15T07:10:59Z</updated>

		<summary type="html">&lt;p&gt;1 version importée : Infobox&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 15 novembre 2023 à 03:10&lt;/td&gt;
				&lt;/tr&gt;
&lt;!-- diff cache key dugwiki:diff::1.12:old-44:rev-45 --&gt;
&lt;/table&gt;</summary>
		<author><name>Yuki</name></author>
	</entry>
	<entry>
		<id>https://dansunegalaxie.ca/index.php?title=Module:Bandeau&amp;diff=44&amp;oldid=prev</id>
		<title>wikipedia&gt;Od1n : :Catégorie:Ébauche inconnue contient actuellement seulement 12&amp;nbsp;pages, mais Huster a corrigé plusieurs dizaines de pages&amp;nbsp;; comme il peut être utile de repérer les pages utilisateur avec des thèmes non reconnus, mais que l&#039;on ne veut pas polluer la catégorie, je les range dans une nouvelle sous-catégorie :Catégorie:Ébauche inconnue dans une page utilisateur</title>
		<link rel="alternate" type="text/html" href="https://dansunegalaxie.ca/index.php?title=Module:Bandeau&amp;diff=44&amp;oldid=prev"/>
		<updated>2023-08-26T01:39:08Z</updated>

		<summary type="html">&lt;p&gt;&lt;a href=&quot;/index.php?title=Cat%C3%A9gorie:%C3%89bauche_inconnue&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Catégorie:Ébauche inconnue (page inexistante)&quot;&gt;Catégorie:Ébauche inconnue&lt;/a&gt; contient actuellement seulement 12 pages, mais &lt;a href=&quot;/index.php?title=Utilisateur:Huster&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Utilisateur:Huster (page inexistante)&quot;&gt;Huster&lt;/a&gt; a corrigé plusieurs dizaines de pages ; comme il peut être utile de repérer les pages utilisateur avec des thèmes non reconnus, mais que l&amp;#039;on ne veut pas polluer la catégorie, je les range dans une nouvelle sous-catégorie &lt;a href=&quot;/index.php?title=Cat%C3%A9gorie:%C3%89bauche_inconnue_dans_une_page_utilisateur&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Catégorie:Ébauche inconnue dans une page utilisateur (page inexistante)&quot;&gt;Catégorie:Ébauche inconnue dans une page utilisateur&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;--Ce module implémente les modèles de bandeau.&lt;br /&gt;
&lt;br /&gt;
--Standardisation des bandeaux ([[Catégorie:Modèle de bandeau]]).&lt;br /&gt;
--Créer une fonction exportable pour le modèle {{Bandeau}} (ns:all).&lt;br /&gt;
--Créer une fonction exportable pour les bandeaux d&amp;#039;article (ns:0).&lt;br /&gt;
--Créer une fonction exportable pour les bandeaux de section (ns:0).&lt;br /&gt;
--Créer une fonction exportable pour les bandeaux d&amp;#039;ébauche (ns:0).&lt;br /&gt;
--Créer une fonction exportable pour les bandeaux de discussion (ns:1).&lt;br /&gt;
--Créer une fonction exportable pour les bandeaux système (ns:8).&lt;br /&gt;
--Gérer les images multiples.&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local trim = require(&amp;#039;Module:Outils&amp;#039;).trim&lt;br /&gt;
local yesno = require(&amp;#039;Module:yesno&amp;#039;)&lt;br /&gt;
local classData = mw.loadData(&amp;#039;Module:Bandeau/Class&amp;#039;)&lt;br /&gt;
local moduleEbauche = &amp;#039;Module:Bandeau/Ébauche&amp;#039;&lt;br /&gt;
-- local paramEbauche = mw.loadData(moduleEbauche) -- ne sera chargé que pour un bandeau d&amp;#039;ébauche.&lt;br /&gt;
&lt;br /&gt;
local cfg = {&lt;br /&gt;
	forme = &amp;#039;bandeau-simple&amp;#039;,&lt;br /&gt;
	niveau = &amp;#039;bandeau-niveau-neutre&amp;#039;,&lt;br /&gt;
	formatLien = &amp;#039;[[Fichier:%s|%spx|alt=%s|class=noviewer]]&amp;#039;,&lt;br /&gt;
	tailleIcone = &amp;#039;45x45&amp;#039;,&lt;br /&gt;
	erreurArgument = &amp;#039;Paramètre &amp;lt;code&amp;gt;|%s=&amp;lt;/code&amp;gt; manquant&amp;#039;,&lt;br /&gt;
	erreurEbaucheParam = &amp;#039;le thème « %s » du modèle [[Modèle:Ébauche|&amp;#039; .. mw.text.nowiki(&amp;#039;{{ébauche}}&amp;#039;) .. &amp;#039;]] n’est pas [[Aide:Ébauche/Aide paramètres|défini]].&amp;#039;,&lt;br /&gt;
	erreurEbaucheType = &amp;#039;le thème « %s » doit apparaître en tête de liste du modèle [[Modèle:Ébauche|&amp;#039; .. mw.text.nowiki(&amp;#039;{{ébauche}}&amp;#039;) .. &amp;#039;]].&amp;#039;,&lt;br /&gt;
	ebaucheImage = &amp;#039;&amp;lt;span style=&amp;quot;white-space:nowrap;word-spacing:5px&amp;quot;&amp;gt;%s&amp;lt;/span&amp;gt;&amp;#039;,&lt;br /&gt;
	ebaucheTitre = &amp;#039;%s est une [[Aide:Ébauche|ébauche]].&amp;#039;,&lt;br /&gt;
	ebaucheTitreSujet = &amp;#039;%s est une [[Aide:Ébauche|ébauche]] concernant %s.&amp;#039;,&lt;br /&gt;
	ebaucheCateg = &amp;#039;[[Catégorie:Wikipédia:ébauche %s]]&amp;#039;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- CSS inline pour éviter FOUC sur le site mobile&lt;br /&gt;
local rustineFoucMobile = {&lt;br /&gt;
	[&amp;#039;display&amp;#039;] = &amp;#039;table-cell&amp;#039;,&lt;br /&gt;
	[&amp;#039;padding-right&amp;#039;] = &amp;#039;0.5em&amp;#039;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local function erreur(texte, formatstring, tag)&lt;br /&gt;
	local res = mw.html.create(tag or &amp;#039;span&amp;#039;)&lt;br /&gt;
	res	:addClass(&amp;#039;error&amp;#039;)&lt;br /&gt;
		:wikitext(&amp;#039;Erreur : &amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	if formatstring then&lt;br /&gt;
		res:wikitext(formatstring:format(texte))&lt;br /&gt;
	else&lt;br /&gt;
		res:wikitext(texte)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return tostring(res)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._bandeau(args)&lt;br /&gt;
	local res = mw.html.create(&amp;#039;div&amp;#039;)&lt;br /&gt;
	local cells = mw.html.create()&lt;br /&gt;
	local icone = trim(args.image) or trim(args[&amp;#039;icône&amp;#039;])&lt;br /&gt;
	local backgroundIcone = icone and classData.icones[icone:gsub(&amp;#039;_&amp;#039;, &amp;#039; &amp;#039;)] or false&lt;br /&gt;
	local texte = (trim(args.texte) or erreur(&amp;#039;texte&amp;#039;, cfg.erreurArgument))&lt;br /&gt;
&lt;br /&gt;
	if args.id and args.id ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		res:attr(&amp;#039;id&amp;#039;, args.id)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	res	:addClass(&amp;#039;bandeau-container metadata&amp;#039;)&lt;br /&gt;
		:addClass(classData.formes[args.forme] or cfg.forme)&lt;br /&gt;
		:addClass(classData.niveau[args.niveau] or cfg.niveau)&lt;br /&gt;
&lt;br /&gt;
	if args.class and args.class ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		res:addClass(args.class)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if args.style and args.style ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		res:cssText(args.style)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if yesno(args.centrer) then&lt;br /&gt;
		cells = mw.html.create(&amp;#039;div&amp;#039;)&lt;br /&gt;
			:addClass(&amp;#039;bandeau-centrer&amp;#039;)&lt;br /&gt;
	elseif trim(args.droite) then&lt;br /&gt;
		cells = mw.html.create(&amp;#039;div&amp;#039;)&lt;br /&gt;
			:css{ display = &amp;#039;table&amp;#039;, width = &amp;#039;100%&amp;#039; }&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if args[&amp;#039;icône bma&amp;#039;] and args[&amp;#039;icône bma&amp;#039;] ~= &amp;#039;non&amp;#039; then&lt;br /&gt;
		if args[&amp;#039;icône bma&amp;#039;] == &amp;#039;oui&amp;#039; then&lt;br /&gt;
			cells:wikitext( mw.getCurrentFrame():expandTemplate{ title = &amp;#039;Bma&amp;#039; } )&lt;br /&gt;
		else&lt;br /&gt;
			cells:wikitext( mw.getCurrentFrame():expandTemplate{ title = &amp;#039;Bma&amp;#039;, args = {args[&amp;#039;icône bma&amp;#039;]} } )&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if icone and not backgroundIcone then&lt;br /&gt;
		local iconeWiki = icone&lt;br /&gt;
		if not icone:match(&amp;#039;%[&amp;#039;) then&lt;br /&gt;
			local alt = args.alt or args[&amp;#039;légende&amp;#039;] or &amp;#039;&amp;#039;&lt;br /&gt;
			if yesno( args[&amp;#039;domaine public&amp;#039;] ) then&lt;br /&gt;
				alt = alt .. &amp;#039;|link=&amp;#039;&lt;br /&gt;
			end&lt;br /&gt;
			local taille = args[&amp;#039;taille icône&amp;#039;] or cfg.tailleIcone&lt;br /&gt;
			iconeWiki = cfg.formatLien:format(icone, taille, alt)&lt;br /&gt;
		end&lt;br /&gt;
		cells&lt;br /&gt;
			:tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
				:addClass(&amp;#039;bandeau-cell bandeau-icone&amp;#039;)&lt;br /&gt;
				:css(rustineFoucMobile)&lt;br /&gt;
				:wikitext(iconeWiki)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	cells&lt;br /&gt;
		:tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
			:addClass(&amp;#039;bandeau-cell&amp;#039;)&lt;br /&gt;
			:css(rustineFoucMobile)&lt;br /&gt;
			:addClass(backgroundIcone and (&amp;#039;bandeau-icone-css &amp;#039; .. backgroundIcone) or nil)&lt;br /&gt;
			:newline() -- sert à la génération automatique de &amp;lt;p&amp;gt; encadrant le contenu&lt;br /&gt;
			:wikitext(texte)&lt;br /&gt;
			:newline() -- sert à la génération automatique de &amp;lt;p&amp;gt; encadrant le contenu&lt;br /&gt;
&lt;br /&gt;
	if trim(args.droite) then&lt;br /&gt;
		cells&lt;br /&gt;
			:tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
				:addClass(&amp;#039;bandeau-cell&amp;#039;)&lt;br /&gt;
				:css(rustineFoucMobile)&lt;br /&gt;
				:css( &amp;#039;padding-left&amp;#039;, &amp;#039;1em&amp;#039; )&lt;br /&gt;
				:newline()&lt;br /&gt;
				:wikitext(args.droite)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	res	:node(cells)&lt;br /&gt;
	if trim(args[&amp;#039;supplément&amp;#039;]) then&lt;br /&gt;
		res	:tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
				:wikitext(args[&amp;#039;supplément&amp;#039;])&lt;br /&gt;
	end&lt;br /&gt;
	return tostring(res)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._bandeauAvertissement(args)&lt;br /&gt;
	local htmlTexte = mw.html.create()&lt;br /&gt;
&lt;br /&gt;
	local titre = trim(args.titre) or erreur(&amp;#039;titre&amp;#039;, cfg.erreurArgument)&lt;br /&gt;
&lt;br /&gt;
	local suffixeDate = trim(args.date)&lt;br /&gt;
	if suffixeDate then&lt;br /&gt;
		-- pour rendre insécable, seulement si le paramètre semble bien être une date valide&lt;br /&gt;
		suffixeDate = (require &amp;#039;Module:Date&amp;#039;).modeleDate{suffixeDate, nolinks=true, afficherErreurs=false, categoriserErreurs=false}&lt;br /&gt;
&lt;br /&gt;
		titre = titre:gsub(&amp;#039;%.$&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
		suffixeDate = &amp;#039; &amp;lt;small&amp;gt;(&amp;#039; .. suffixeDate .. &amp;#039;).&amp;lt;/small&amp;gt;&amp;#039;&lt;br /&gt;
	elseif not titre:match(&amp;#039;[.,;:!?]$&amp;#039;) then&lt;br /&gt;
		titre = titre .. &amp;#039;.&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	htmlTexte&lt;br /&gt;
		:tag(&amp;#039;strong&amp;#039;)&lt;br /&gt;
			:addClass(&amp;#039;bandeau-titre&amp;#039;)&lt;br /&gt;
			:wikitext(titre)&lt;br /&gt;
		:done()&lt;br /&gt;
		:wikitext(suffixeDate)&lt;br /&gt;
&lt;br /&gt;
	local texte = trim(args.texte)&lt;br /&gt;
	if texte then&lt;br /&gt;
		htmlTexte&lt;br /&gt;
			:newline()&lt;br /&gt;
			:newline()&lt;br /&gt;
			:wikitext(texte)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local parametres = {&lt;br /&gt;
		forme = &amp;#039;article&amp;#039;,&lt;br /&gt;
		niveau = args.niveau,&lt;br /&gt;
		id = args.id,&lt;br /&gt;
		class = args.class,&lt;br /&gt;
		[&amp;#039;icône&amp;#039;] = trim(args[&amp;#039;icône&amp;#039;]) or trim(args[&amp;#039;icône-complexe&amp;#039;]) or args.niveau,&lt;br /&gt;
		alt = args.alt or args[&amp;#039;légende&amp;#039;],&lt;br /&gt;
		[&amp;#039;domaine public&amp;#039;] = args[&amp;#039;domaine public&amp;#039;],&lt;br /&gt;
		texte = tostring(htmlTexte),&lt;br /&gt;
		[&amp;#039;icône bma&amp;#039;] = args[&amp;#039;icône bma&amp;#039;],&lt;br /&gt;
		[&amp;#039;supplément&amp;#039;] = args[&amp;#039;supplément&amp;#039;],&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	return p._bandeau(parametres)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
	TODO - fusionner ces deux méthodes :&lt;br /&gt;
	* p._bandeau() avec forme=section&lt;br /&gt;
	* p._bandeauSection()&lt;br /&gt;
]]--&lt;br /&gt;
&lt;br /&gt;
function p._bandeauSection(args)&lt;br /&gt;
	local res = mw.html.create(&amp;#039;div&amp;#039;)&lt;br /&gt;
	local icone = trim(args.image) or trim(args[&amp;#039;icône&amp;#039;])&lt;br /&gt;
	local backgroundIcone = icone and classData.icones[icone:gsub(&amp;#039;_&amp;#039;, &amp;#039; &amp;#039;)] or false&lt;br /&gt;
	local texte = (trim(args.texte) or erreur(&amp;#039;texte&amp;#039;, cfg.erreurArgument))&lt;br /&gt;
&lt;br /&gt;
	res	:addClass(&amp;#039;bandeau-container bandeau-section metadata&amp;#039;)&lt;br /&gt;
		:addClass(classData.niveau[args.niveau] or cfg.niveau)&lt;br /&gt;
&lt;br /&gt;
	if icone and not backgroundIcone then&lt;br /&gt;
		local iconeWiki = icone&lt;br /&gt;
		if not icone:match(&amp;#039;%[&amp;#039;) then&lt;br /&gt;
			local alt = args.alt or args[&amp;#039;légende&amp;#039;] or &amp;#039;&amp;#039;&lt;br /&gt;
			if yesno( args[&amp;#039;domaine public&amp;#039;] ) then&lt;br /&gt;
				alt = alt .. &amp;#039;|link=&amp;#039;&lt;br /&gt;
			end&lt;br /&gt;
			iconeWiki = cfg.formatLien:format(icone, &amp;#039;text-top|20x17&amp;#039;, alt)&lt;br /&gt;
		end&lt;br /&gt;
		res	:tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
				:addClass(&amp;#039;bandeau-cell bandeau-icone&amp;#039;)&lt;br /&gt;
				:wikitext(iconeWiki)&lt;br /&gt;
	end&lt;br /&gt;
	res	:tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
			:addClass(&amp;#039;bandeau-cell&amp;#039;)&lt;br /&gt;
			:addClass(backgroundIcone and (&amp;#039;bandeau-icone-css &amp;#039; .. backgroundIcone) or nil)&lt;br /&gt;
			:wikitext(texte)&lt;br /&gt;
&lt;br /&gt;
	return tostring(res)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- fonction qui inverse la casse du premier caractère d&amp;#039;une chaine&lt;br /&gt;
local function inverserCasse( str )&lt;br /&gt;
	if type( str ) == &amp;#039;string&amp;#039; then&lt;br /&gt;
		local premierCar = mw.ustring.sub( str, 1, 1 )&lt;br /&gt;
		if mw.ustring.lower( premierCar ) == premierCar then&lt;br /&gt;
			return mw.ustring.upper( premierCar ) .. mw.ustring.sub( str, 2 )&lt;br /&gt;
		else&lt;br /&gt;
			return mw.ustring.lower( premierCar ) .. mw.ustring.sub( str, 2 )&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- fonction qui récupètre la ou les tables d&amp;#039;ébauche correspondant au thème&lt;br /&gt;
local function getEbaucheTable( paramEbauche, theme, feminin )&lt;br /&gt;
	-- suprime les marques de direction ltr&lt;br /&gt;
	theme = theme:gsub( &amp;#039;\226\128\142&amp;#039;, &amp;#039;&amp;#039; ):gsub( &amp;#039;_&amp;#039;, &amp;#039; &amp;#039; )&lt;br /&gt;
	-- récupére les paramètres lié au theme, à partir du module:Bandeau/Ébauche&lt;br /&gt;
	local params = {}&lt;br /&gt;
	local ebauche = paramEbauche[ theme ] or paramEbauche[ inverserCasse( theme ) ]&lt;br /&gt;
	if not ebauche and theme:find( &amp;#039; &amp;#039; ) then&lt;br /&gt;
		-- teste si l&amp;#039;un des mots du thème correspond à un adjectif existant&lt;br /&gt;
		for adj in theme:gmatch( &amp;#039; ([^ ]+)&amp;#039; ) do&lt;br /&gt;
			paramsAdj = getEbaucheTable( paramEbauche, adj, feminin )&lt;br /&gt;
			if paramsAdj and paramsAdj.adjectif == true then&lt;br /&gt;
				local nom = theme:gsub( &amp;#039; &amp;#039; .. adj:gsub( &amp;#039;(%p)&amp;#039;, &amp;#039;%%%1&amp;#039;), &amp;#039;&amp;#039; )&lt;br /&gt;
				params = getEbaucheTable( paramEbauche, nom, feminin )&lt;br /&gt;
				if params then&lt;br /&gt;
					return params, paramsAdj&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		-- aucun mot ne correspond à un adjectif, on essait une autre methode pour trouver une correspondance avec plusieurs mots&lt;br /&gt;
		if theme:find( &amp;#039; .+ &amp;#039; ) then&lt;br /&gt;
			for adj, paramsAdj in pairs( paramEbauche ) do&lt;br /&gt;
				if paramsAdj.adjectif == true and theme:find( &amp;#039; &amp;#039; .. adj, 2, true ) then&lt;br /&gt;
					local nom = theme:gsub( &amp;#039; &amp;#039; .. adj:gsub( &amp;#039;(%p)&amp;#039;, &amp;#039;%%%1&amp;#039;), &amp;#039;&amp;#039; )&lt;br /&gt;
					params = getEbaucheTable( paramEbauche, nom, feminin )&lt;br /&gt;
					if params then&lt;br /&gt;
						return params, paramsAdj&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if feminin and ebauche and ebauche.feminin then&lt;br /&gt;
		ebauche = paramEbauche[ ebauche.feminin ]&lt;br /&gt;
	end&lt;br /&gt;
	if ebauche then&lt;br /&gt;
		for n, v in pairs( ebauche ) do&lt;br /&gt;
			params[ n ] = v&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		params = nil&lt;br /&gt;
	end&lt;br /&gt;
	return params, nil&lt;br /&gt;
end&lt;br /&gt;
p.getEbaucheTable = getEbaucheTable&lt;br /&gt;
&lt;br /&gt;
local function femininFromWikidata()&lt;br /&gt;
	local entity = mw.wikibase.getEntity()&lt;br /&gt;
	if entity then&lt;br /&gt;
		local p31 = entity:getBestStatements( &amp;#039;P31&amp;#039; )&lt;br /&gt;
		local estHumain = type( p31 ) == &amp;#039;table&amp;#039;&lt;br /&gt;
			and #p31 == 1&lt;br /&gt;
			and type( p31[ 1 ].mainsnak ) == &amp;#039;table&amp;#039;&lt;br /&gt;
			and type( p31[ 1 ].mainsnak.datavalue ) == &amp;#039;table&amp;#039;&lt;br /&gt;
			and type( p31[ 1 ].mainsnak.datavalue.value ) == &amp;#039;table&amp;#039;&lt;br /&gt;
			and p31[ 1 ].mainsnak.datavalue.value[&amp;#039;numeric-id&amp;#039;] == 5&lt;br /&gt;
		local p21 = entity:getBestStatements( &amp;#039;P21&amp;#039; )&lt;br /&gt;
		local estFeminin = type( p21 ) == &amp;#039;table&amp;#039;&lt;br /&gt;
			and #p21 == 1&lt;br /&gt;
			and type( p21[ 1 ].mainsnak ) == &amp;#039;table&amp;#039;&lt;br /&gt;
			and type( p21[ 1 ].mainsnak.datavalue ) == &amp;#039;table&amp;#039;&lt;br /&gt;
			and type( p21[ 1 ].mainsnak.datavalue.value ) == &amp;#039;table&amp;#039;&lt;br /&gt;
			and p21[ 1 ].mainsnak.datavalue.value[&amp;#039;numeric-id&amp;#039;] == 6581072&lt;br /&gt;
		return estHumain, estFeminin&lt;br /&gt;
	end&lt;br /&gt;
	return false, false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p[&amp;#039;_ébauche&amp;#039;] = function ( args )&lt;br /&gt;
	local paramEbauche = mw.loadData( moduleEbauche )&lt;br /&gt;
	local page = mw.title.getCurrentTitle()&lt;br /&gt;
	local ebauches, gestionErreur = {}, {}&lt;br /&gt;
	local humain, feminin = femininFromWikidata()&lt;br /&gt;
	if args[&amp;#039;féminin&amp;#039;] and args[&amp;#039;féminin&amp;#039;] ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		feminin = yesno( args[&amp;#039;féminin&amp;#039;], true )&lt;br /&gt;
	end&lt;br /&gt;
	local estFeminin&lt;br /&gt;
&lt;br /&gt;
	-- fonction qui retourne la valeur de param pour l&amp;#039;ébauche i, ou une valeur par défaut&lt;br /&gt;
	local ebaucheParam = function( i, param )&lt;br /&gt;
		return ebauches[ i ] and ebauches[ i ][ param ] or paramEbauche[&amp;#039;&amp;#039;][ param ]&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- récupération des paramètres de tous les thèmes&lt;br /&gt;
	for i, theme in ipairs( args ) do&lt;br /&gt;
		theme = trim( theme )&lt;br /&gt;
		if theme then&lt;br /&gt;
			local t, tAdj = getEbaucheTable( paramEbauche, theme, feminin )&lt;br /&gt;
			if t then&lt;br /&gt;
				table.insert( ebauches, t )&lt;br /&gt;
				table.insert( ebauches, tAdj )&lt;br /&gt;
			else&lt;br /&gt;
				table.insert(&lt;br /&gt;
					gestionErreur,&lt;br /&gt;
					erreur( theme, cfg.erreurEbaucheParam, &amp;#039;div&amp;#039; )&lt;br /&gt;
				)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- récupération des différents titres, images et catégories&lt;br /&gt;
	local images, titres, categs = {}, {}, {}&lt;br /&gt;
	local tailleIcone = &amp;#039;45x35&amp;#039;&lt;br /&gt;
	if #ebauches &amp;gt; 3 then&lt;br /&gt;
		tailleIcone = &amp;#039;35x25&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	for i, ebauche in ipairs( ebauches ) do&lt;br /&gt;
		-- création du lien de l&amp;#039;image&lt;br /&gt;
		local alt = &amp;#039;&amp;#039;&lt;br /&gt;
		if ebauche.icone then&lt;br /&gt;
			local image = cfg.formatLien:format( ebauche.icone, tailleIcone, alt )&lt;br /&gt;
			table.insert( images, image )&lt;br /&gt;
		end&lt;br /&gt;
		if math.fmod( #ebauches, 3 ) == 1 and ( #ebauches - i ) == 2&lt;br /&gt;
			or math.fmod( i, 3 ) == 0 and ( #ebauches - i ) &amp;gt; 1&lt;br /&gt;
		then&lt;br /&gt;
			-- sur plusieurs lignes s&amp;#039;il y a plus de 3 images, avec minimum deux images sur la dernière ligne&lt;br /&gt;
			table.insert( images, &amp;#039;&amp;lt;br&amp;gt; &amp;#039; )&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		if i &amp;gt; 1 and ebauche.type and ebauche.type ~= paramEbauche[&amp;#039;&amp;#039;].type then&lt;br /&gt;
			-- remplace &amp;quot;Cet article par &amp;quot;Ce portail&amp;quot; ou autre en fonction du premier thème&lt;br /&gt;
			table.insert(&lt;br /&gt;
				gestionErreur,&lt;br /&gt;
				erreur( ebauche.nom, cfg.erreurEbaucheType, &amp;#039;div&amp;#039; )&lt;br /&gt;
			)&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		-- récupères les différents noms de thème&lt;br /&gt;
		if ebauche.adjectif and #titres &amp;gt; 0 then&lt;br /&gt;
			local sujet = ebauche.sujet or ebauche.nom&lt;br /&gt;
			if estFeminin then&lt;br /&gt;
				sujet = ebauche.sujetF or sujet:gsub(&lt;br /&gt;
					ebauche.nom:gsub( &amp;#039;(%p)&amp;#039;, &amp;#039;%%%1&amp;#039;) .. &amp;#039;%f[%W]&amp;#039;,&lt;br /&gt;
					ebauche.feminin&lt;br /&gt;
				)&lt;br /&gt;
			end&lt;br /&gt;
			-- ajout du sujet de l&amp;#039;adjectif dans le sujet de l&amp;#039;ébauche précédente&lt;br /&gt;
			local titre, subst = titres[ #titres ]:gsub(&lt;br /&gt;
				&amp;#039;&amp;lt;(adj[^&amp;gt;]*)&amp;gt;&amp;#039;,&lt;br /&gt;
				{ adjectif = sujet, adj = ebauche.nom, adjF = ebauche.feminin }&lt;br /&gt;
			)&lt;br /&gt;
			if subst &amp;gt; 0 then&lt;br /&gt;
				titres[ #titres ] = titre&lt;br /&gt;
			else&lt;br /&gt;
				titres[ #titres ] = titre .. &amp;#039; &amp;#039; .. sujet&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			table.insert( titres, ebauche.sujet )&lt;br /&gt;
			estFeminin = ebauche.estFeminin or ( ebauche.sujet == &amp;#039;&amp;#039; and estFeminin )&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		-- mise en forme des catégories&lt;br /&gt;
		if ebauche.adjectif then&lt;br /&gt;
			-- tentative d&amp;#039;ajout du nom de l&amp;#039;adjectif dans les catégories précédentes&lt;br /&gt;
			local modif = false&lt;br /&gt;
			for k, v in ipairs( categs ) do&lt;br /&gt;
				local cat, subst = v:gsub(&lt;br /&gt;
					&amp;#039;&amp;lt;(adj[^&amp;gt;]*)&amp;gt;&amp;#039;,&lt;br /&gt;
					{ adj = ebauche.nom, adjF =  ebauche.feminin,  adjectif = ebauche.nom }&lt;br /&gt;
				)&lt;br /&gt;
				if subst == 0 then&lt;br /&gt;
					cat = v .. &amp;#039; &amp;#039; .. ebauche.nom&lt;br /&gt;
				end&lt;br /&gt;
				if mw.title.new( &amp;#039;Catégorie:Wikipédia:ébauche &amp;#039; .. cat ).exists then&lt;br /&gt;
					categs[ k ] = cat&lt;br /&gt;
					modif = true&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			if not modif&lt;br /&gt;
				and humain&lt;br /&gt;
				and mw.title.new( &amp;#039;Catégorie:Wikipédia:ébauche personnalité &amp;#039; .. ebauche.feminin ).exists&lt;br /&gt;
			then&lt;br /&gt;
				table.insert( categs, &amp;#039;personnalité &amp;#039; .. ebauche.feminin )&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		table.insert( categs, ebauche.categ )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- mise en forme des images&lt;br /&gt;
	local image&lt;br /&gt;
	if args[&amp;#039;icône&amp;#039;] and args[&amp;#039;icône&amp;#039;] ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		local theme = getEbaucheTable( paramEbauche, args[&amp;#039;icône&amp;#039;] )&lt;br /&gt;
		if theme and theme.icone then&lt;br /&gt;
			image = cfg.formatLien:format(&lt;br /&gt;
				theme.icone,&lt;br /&gt;
				tailleIcone,&lt;br /&gt;
				theme.altIcone or ( &amp;#039;image illustrant &amp;#039; .. theme.sujet )&lt;br /&gt;
			)&lt;br /&gt;
		end&lt;br /&gt;
	elseif #images == 1 then&lt;br /&gt;
		image = images[ 1 ]&lt;br /&gt;
	elseif #images &amp;gt; 1 then&lt;br /&gt;
		image = cfg.ebaucheImage:format( table.concat( images, &amp;#039; &amp;#039; ) )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- mise en forme du titre&lt;br /&gt;
	local titre&lt;br /&gt;
	if #titres &amp;gt; 0 then&lt;br /&gt;
		titre = cfg.ebaucheTitreSujet:format(&lt;br /&gt;
			ebaucheParam( 1, &amp;#039;type&amp;#039; ),&lt;br /&gt;
			mw.text.listToText( titres )&lt;br /&gt;
		)&lt;br /&gt;
	else&lt;br /&gt;
		titre = cfg.ebaucheTitre:format( ebaucheParam( 1, &amp;#039;type&amp;#039; ) )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- mise en forme du texte&lt;br /&gt;
	local texte&lt;br /&gt;
	if #ebauches == 0 then&lt;br /&gt;
		texte = ( ebaucheParam( 1, &amp;#039;message&amp;#039; ) ) .. &amp;#039;.&amp;#039;&lt;br /&gt;
	else&lt;br /&gt;
		local message = ebaucheParam( 1, &amp;#039;message&amp;#039; )&lt;br /&gt;
		local selon = ebaucheParam( 1, &amp;#039;selon&amp;#039; )&lt;br /&gt;
		-- ajout d&amp;#039;un point si le paramètre selon commence par un retour ligne ou une majuscule&lt;br /&gt;
		if message:sub( -1 ) == &amp;#039;)&amp;#039; and ( selon:sub( 1, 3 ) == &amp;#039;&amp;lt;br&amp;#039; or mw.ustring.match( selon, &amp;#039;^%u&amp;#039; ) ) then&lt;br /&gt;
			texte = ( ebaucheParam( 1, &amp;#039;message&amp;#039; ) ) .. &amp;#039;. &amp;#039; .. ( ebaucheParam( 1, &amp;#039;selon&amp;#039; ) ) .. &amp;#039;.&amp;#039;&lt;br /&gt;
		else&lt;br /&gt;
			texte = ( ebaucheParam( 1, &amp;#039;message&amp;#039; ) ) .. &amp;#039; &amp;#039; .. ( ebaucheParam( 1, &amp;#039;selon&amp;#039; ) ) .. &amp;#039;.&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	-- ajout d&amp;#039;un texte s&amp;#039;il y a une liste de tâches&lt;br /&gt;
	local todo = page.talkPageTitle and mw.title.new( page.talkPageTitle.fullText .. &amp;#039;/À faire&amp;#039; ) or nil&lt;br /&gt;
	if todo and todo.exists then&lt;br /&gt;
		texte = texte .. &amp;#039;\n\n&amp;#039;&lt;br /&gt;
			.. &amp;#039;Consultez la liste des &amp;lt;b&amp;gt;tâches à accomplir&amp;lt;/b&amp;gt; en [[&amp;#039;&lt;br /&gt;
			.. page.talkPageTitle.prefixedText&lt;br /&gt;
			.. &amp;#039;|page de discussion]].&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- paramètres pour le bandeau&lt;br /&gt;
	local parametres = {&lt;br /&gt;
		niveau = &amp;#039;ébauche&amp;#039;,&lt;br /&gt;
		[&amp;#039;icône&amp;#039;] = image,&lt;br /&gt;
		titre = titre:gsub( &amp;#039; &amp;lt;adj[^&amp;gt;]*&amp;gt;&amp;#039;, &amp;#039;&amp;#039; ),&lt;br /&gt;
		texte = texte,&lt;br /&gt;
		id = args.id&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	-- concaténation des différentes catégories (pas de catégorisation si nocat, ou page de discussion, ou espace utilisateur)&lt;br /&gt;
	local categ = &amp;#039;&amp;#039;&lt;br /&gt;
	if not ( yesno( args.nocat, true, false ) or page.isTalkPage or page.namespace == 2 ) then&lt;br /&gt;
		for i = 1, #categs do&lt;br /&gt;
			categs[ i ] = cfg.ebaucheCateg:format( categs[ i ] )&lt;br /&gt;
		end&lt;br /&gt;
		categ = table.concat( categs ):gsub( &amp;#039; &amp;lt;[^&amp;gt;]*&amp;gt;&amp;#039;, &amp;#039;&amp;#039; )&lt;br /&gt;
		if categ == &amp;#039;&amp;#039; then&lt;br /&gt;
			categ = cfg.ebaucheCateg:format(&amp;#039;&amp;#039;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local messageErreur = table.concat( gestionErreur )&lt;br /&gt;
	if #gestionErreur &amp;gt; 0 then&lt;br /&gt;
		if page.namespace == 2 then&lt;br /&gt;
			messageErreur = messageErreur .. &amp;#039;[[Catégorie:Ébauche inconnue dans une page utilisateur]]&amp;#039;&lt;br /&gt;
		else&lt;br /&gt;
			messageErreur = messageErreur .. &amp;#039;[[Catégorie:Ébauche inconnue]]&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return p._bandeauAvertissement( parametres ) .. categ .. messageErreur&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
-- fonction retournant un paramètre d&amp;#039;une table d&amp;#039;ébauche.&lt;br /&gt;
-- Elle est prévue pour être appelée directement par #invoke:&lt;br /&gt;
-- avec pour paramètres le thème et le paramètre désiré&lt;br /&gt;
-- Cette fonction est principalement destinée à la page d&amp;#039;aide.&lt;br /&gt;
function p.parametreEbauche( frame )&lt;br /&gt;
	local paramEbauche = mw.loadData( moduleEbauche )&lt;br /&gt;
	local theme = frame.args[1]&lt;br /&gt;
	local param = frame.args[2]&lt;br /&gt;
	if paramEbauche[ theme ] then&lt;br /&gt;
		return paramEbauche[ theme ][ param ]&lt;br /&gt;
	elseif paramEbauche[ inverserCasse( theme ) ] then&lt;br /&gt;
		return paramEbauche[ inverserCasse( theme ) ][ param ]&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
-- Fonction retournant le féminin d&amp;#039;un théme d&amp;#039;ébauche&lt;br /&gt;
-- Elle est prévue pour être appelée directement par #invoke:&lt;br /&gt;
-- avec pour paramètres le thème et le paramètre désiré&lt;br /&gt;
-- Cette fonction est principalement destinée au modèle {{Catégorie d&amp;#039;ébauche}}, donc une valeur n&amp;#039;est retournée que si les catégories sont identiques&lt;br /&gt;
function p.femininEbauche( frame )&lt;br /&gt;
	local paramEbauche = mw.loadData( moduleEbauche )&lt;br /&gt;
	local theme = frame.args[1]&lt;br /&gt;
	local themeF&lt;br /&gt;
	if theme then&lt;br /&gt;
		local t = getEbaucheTable( paramEbauche, theme )&lt;br /&gt;
		local tF, tAdjF = getEbaucheTable( paramEbauche, theme, true )&lt;br /&gt;
		if t and tF and t.feminin and tF.categ == t.categ then&lt;br /&gt;
			if tAdjF then&lt;br /&gt;
				themeF = tF.nom .. &amp;#039; &amp;#039; .. tAdjF.feminin&lt;br /&gt;
			else&lt;br /&gt;
				themeF = tF.nom&lt;br /&gt;
			end&lt;br /&gt;
			return themeF&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
-- fonction qui contruit deux tableaux récapitulatif de l&amp;#039;ensemble des paramètres d&amp;#039;ébauche&lt;br /&gt;
function p.tableParametresEbauches( frame )&lt;br /&gt;
	local paramEbauche = mw.loadData( moduleEbauche )&lt;br /&gt;
&lt;br /&gt;
	local currentFrame = mw.getCurrentFrame()&lt;br /&gt;
	local languageObj = mw.getContentLanguage()&lt;br /&gt;
	function pagesInCategory( category )&lt;br /&gt;
		return languageObj:formatNum( tonumber( currentFrame:callParserFunction( &amp;#039;PAGESINCATEGORY&amp;#039;, { category, &amp;#039;R&amp;#039; } ) ) )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local params, paramAdj, paramType = {}, {}, {}&lt;br /&gt;
	for clef, ebauche in pairs( paramEbauche ) do&lt;br /&gt;
		local kEbauche = {}&lt;br /&gt;
		for k, v in pairs( ebauche ) do&lt;br /&gt;
			kEbauche[ k ] = v&lt;br /&gt;
		end&lt;br /&gt;
		kEbauche.clef = clef&lt;br /&gt;
		if ebauche.type then&lt;br /&gt;
			table.insert( paramType, kEbauche )&lt;br /&gt;
		elseif ebauche.adjectif then&lt;br /&gt;
			if clef == ebauche.nom or clef ~= ebauche.feminin then&lt;br /&gt;
				table.insert( paramAdj, kEbauche )&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			table.insert( params, kEbauche )&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local comp = function( eb1, eb2 )&lt;br /&gt;
		return eb1.clef &amp;lt; eb2.clef&lt;br /&gt;
	end&lt;br /&gt;
	table.sort( params, comp )&lt;br /&gt;
	table.sort( paramAdj, comp )&lt;br /&gt;
	table.sort( paramType, comp )&lt;br /&gt;
&lt;br /&gt;
	local wikiTab = { &amp;#039;&amp;lt;table class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;table-layout:fixed;&amp;quot;&amp;gt;&amp;#039; }&lt;br /&gt;
	wikiTab.insert = function ( t, value )&lt;br /&gt;
		table.insert( t, value )&lt;br /&gt;
		return t&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	wikiTab&lt;br /&gt;
		:insert(&amp;#039;\n=== Ébauches normales ===\n&amp;#039;)&lt;br /&gt;
		:insert(&amp;#039;&amp;lt;caption&amp;gt;Liste des paramètres d\&amp;#039;ébauche&amp;lt;/caption&amp;gt;&amp;#039;)&lt;br /&gt;
		:insert(&amp;#039;&amp;lt;th scope=col style=&amp;quot;width:15%;&amp;quot;&amp;gt;nom&amp;lt;/th&amp;gt;&amp;#039;)&lt;br /&gt;
		:insert(&amp;#039;&amp;lt;th scope=col style=&amp;quot;width:50px; box-sizing:border-box;&amp;quot;&amp;gt;i&amp;lt;/th&amp;gt;&amp;#039;)&lt;br /&gt;
		:insert(&amp;#039;&amp;lt;th scope=col style=&amp;quot;width:20%;&amp;quot;&amp;gt;sujet&amp;lt;/th&amp;gt;&amp;#039;)&lt;br /&gt;
		:insert(&amp;#039;&amp;lt;th scope=col style=&amp;quot;width:20%;&amp;quot;&amp;gt;catégorie&amp;lt;/th&amp;gt;&amp;#039;)&lt;br /&gt;
		:insert(&amp;#039;&amp;lt;th scope=col style=&amp;quot;width:20%;&amp;quot;&amp;gt;compteur&amp;lt;/th&amp;gt;&amp;#039;)&lt;br /&gt;
		:insert(&amp;#039;&amp;lt;th scope=col&amp;gt;selon&amp;lt;/th&amp;gt;&amp;#039;)&lt;br /&gt;
	for k, ebauche in ipairs( params ) do&lt;br /&gt;
		wikiTab&lt;br /&gt;
			:insert(&amp;#039;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;#039;)&lt;br /&gt;
			:insert( ebauche.clef )&lt;br /&gt;
			:insert(&amp;#039;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;#039;)&lt;br /&gt;
		if ebauche.icone then&lt;br /&gt;
			wikiTab:insert( cfg.formatLien:format( ebauche.icone, &amp;#039;45x35&amp;#039;, ebauche.altIcone or &amp;#039;&amp;#039; ) )&lt;br /&gt;
		end&lt;br /&gt;
		wikiTab&lt;br /&gt;
			:insert(&amp;#039;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;#039;)&lt;br /&gt;
			:insert( ebauche.sujet )&lt;br /&gt;
			:insert(&amp;#039;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;#039;)&lt;br /&gt;
		if ebauche.categ then&lt;br /&gt;
			wikiTab&lt;br /&gt;
				:insert( &amp;#039;[[:Catégorie:Wikipédia:ébauche &amp;#039; .. ebauche.categ .. &amp;#039;|&amp;#039; .. ebauche.categ .. &amp;#039;]]&amp;#039; )&lt;br /&gt;
		end&lt;br /&gt;
		wikiTab&lt;br /&gt;
			:insert(&amp;#039;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;#039;)&lt;br /&gt;
		if ebauche.categ then&lt;br /&gt;
			wikiTab&lt;br /&gt;
				:insert( pagesInCategory( &amp;#039;Wikipédia:ébauche &amp;#039; .. ebauche.categ ) )&lt;br /&gt;
		end&lt;br /&gt;
		wikiTab&lt;br /&gt;
			:insert(&amp;#039;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;#039;)&lt;br /&gt;
			:insert( ebauche.selon )&lt;br /&gt;
			:insert(&amp;#039;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	wikiTab:insert(&amp;#039;&amp;lt;/table&amp;gt;&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	-- seconde table pour les adjectifs&lt;br /&gt;
	wikiTab&lt;br /&gt;
		:insert(&amp;#039;\n=== Adjectifs ===\n&amp;#039;)&lt;br /&gt;
		:insert(&amp;#039;&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&amp;#039;)&lt;br /&gt;
		:insert(&amp;#039;&amp;lt;caption&amp;gt;Liste des adjectifs&amp;lt;/caption&amp;gt;&amp;#039;)&lt;br /&gt;
		:insert(&amp;#039;&amp;lt;th scope=col&amp;gt;adjectif&amp;lt;/th&amp;gt;&amp;#039;)&lt;br /&gt;
		:insert(&amp;#039;&amp;lt;th scope=col&amp;gt;féminin&amp;lt;/th&amp;gt;&amp;#039;)&lt;br /&gt;
		:insert(&amp;#039;&amp;lt;th scope=col style=&amp;quot;width:50px;&amp;quot;&amp;gt;icone&amp;lt;/th&amp;gt;&amp;#039;)&lt;br /&gt;
		:insert(&amp;#039;&amp;lt;th scope=col&amp;gt;sujet&amp;lt;/th&amp;gt;&amp;#039;)&lt;br /&gt;
		:insert(&amp;#039;&amp;lt;th scope=col&amp;gt;sujet féminin&amp;lt;/th&amp;gt;&amp;#039;)&lt;br /&gt;
		:insert(&amp;#039;&amp;lt;th scope=col&amp;gt;catégorie&amp;lt;/th&amp;gt;&amp;#039;)&lt;br /&gt;
	for k, ebauche in ipairs( paramAdj ) do&lt;br /&gt;
		wikiTab&lt;br /&gt;
			:insert(&amp;#039;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;#039;)&lt;br /&gt;
			:insert( ebauche.clef )&lt;br /&gt;
			:insert(&amp;#039;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;#039;)&lt;br /&gt;
			:insert( ebauche.feminin )&lt;br /&gt;
			:insert(&amp;#039;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;#039;)&lt;br /&gt;
		if ebauche.icone then&lt;br /&gt;
			wikiTab&lt;br /&gt;
				:insert( cfg.formatLien:format( ebauche.icone, &amp;#039;45x35&amp;#039;, ebauche.altIcone or &amp;#039;&amp;#039; ) )&lt;br /&gt;
		end&lt;br /&gt;
		wikiTab&lt;br /&gt;
			:insert(&amp;#039;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;#039;)&lt;br /&gt;
			:insert( ebauche.sujet )&lt;br /&gt;
			:insert(&amp;#039;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;#039;)&lt;br /&gt;
			:insert( ebauche.sujetF or ebauche.sujet:gsub( ebauche.nom .. &amp;#039;%f[%W]&amp;#039;, ebauche.feminin ) )&lt;br /&gt;
			:insert(&amp;#039;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;#039;)&lt;br /&gt;
		if ebauche.categ then&lt;br /&gt;
			wikiTab&lt;br /&gt;
				:insert( &amp;#039;[[:Catégorie:Wikipédia:ébauche &amp;#039; .. ebauche.categ .. &amp;#039;|&amp;#039; .. ebauche.categ .. &amp;#039;]]&amp;#039; )&lt;br /&gt;
		end&lt;br /&gt;
		wikiTab&lt;br /&gt;
			:insert(&amp;#039;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	wikiTab:insert(&amp;#039;&amp;lt;/table&amp;gt;&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	-- troisième table pour les types&lt;br /&gt;
	wikiTab&lt;br /&gt;
		:insert(&amp;#039;\n=== Types ===\n&amp;#039;)&lt;br /&gt;
		:insert(&amp;#039;&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&amp;#039;)&lt;br /&gt;
		:insert(&amp;#039;&amp;lt;caption&amp;gt;Liste des paramètres de type&amp;lt;/caption&amp;gt;&amp;#039;)&lt;br /&gt;
		:insert(&amp;#039;&amp;lt;th scope=col style=&amp;quot;width:15%;&amp;quot;&amp;gt;nom&amp;lt;/th&amp;gt;&amp;#039;)&lt;br /&gt;
		:insert(&amp;#039;&amp;lt;th scope=col style=&amp;quot;width:50px;&amp;quot;&amp;gt;icone&amp;lt;/th&amp;gt;&amp;#039;)&lt;br /&gt;
		:insert(&amp;#039;&amp;lt;th scope=col style=&amp;quot;width:20%;&amp;quot;&amp;gt;type&amp;lt;/th&amp;gt;&amp;#039;)&lt;br /&gt;
		:insert(&amp;#039;&amp;lt;th scope=col style=&amp;quot;width:15%;&amp;quot;&amp;gt;sujet&amp;lt;/th&amp;gt;&amp;#039;)&lt;br /&gt;
		:insert(&amp;#039;&amp;lt;th scope=col style=&amp;quot;width:15%;&amp;quot;&amp;gt;catégorie&amp;lt;/th&amp;gt;&amp;#039;)&lt;br /&gt;
		:insert(&amp;#039;&amp;lt;th scope=col&amp;gt;message&amp;lt;/th&amp;gt;&amp;#039;)&lt;br /&gt;
	for k, ebauche in ipairs( paramType ) do&lt;br /&gt;
		wikiTab&lt;br /&gt;
			:insert(&amp;#039;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;#039;)&lt;br /&gt;
			:insert( ebauche.clef )&lt;br /&gt;
			:insert(&amp;#039;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;#039;)&lt;br /&gt;
		if ebauche.icone then&lt;br /&gt;
			wikiTab:insert( cfg.formatLien:format( ebauche.icone, &amp;#039;45x35&amp;#039;, ebauche.altIcone or &amp;#039;&amp;#039; ) )&lt;br /&gt;
		end&lt;br /&gt;
		wikiTab&lt;br /&gt;
			:insert(&amp;#039;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;#039;)&lt;br /&gt;
			:insert ( ebauche.type )&lt;br /&gt;
			:insert(&amp;#039;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;#039;)&lt;br /&gt;
			:insert( ebauche.sujet )&lt;br /&gt;
			:insert(&amp;#039;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;#039;)&lt;br /&gt;
		if ebauche.categ then&lt;br /&gt;
			wikiTab:insert( &amp;#039;[[:Catégorie:Wikipédia:ébauche &amp;#039; .. ebauche.categ .. &amp;#039;|&amp;#039; .. ebauche.categ .. &amp;#039;]]&amp;#039; )&lt;br /&gt;
		end&lt;br /&gt;
		wikiTab&lt;br /&gt;
			:insert(&amp;#039;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;#039;)&lt;br /&gt;
			:insert( ebauche.message )&lt;br /&gt;
			:insert(&amp;#039;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	wikiTab:insert(&amp;#039;&amp;lt;/table&amp;gt;&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	-- parenthèses pour enlever la 2e valeur retournée par gsub (le nombre de remplacements effectués)&lt;br /&gt;
	return (table.concat( wikiTab ):gsub( &amp;#039; &amp;lt;adjF?&amp;gt;&amp;#039;, &amp;#039;&amp;#039; ))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- fonction destinée au gadget [[MediaWiki:Gadget-BandeauxEbauches.js]]&lt;br /&gt;
function p.listeEbauches( frame )&lt;br /&gt;
	local paramEbauche = mw.loadData( moduleEbauche )&lt;br /&gt;
	local liste = {}&lt;br /&gt;
	for k in pairs( paramEbauche ) do&lt;br /&gt;
		if k ~= &amp;quot;&amp;quot; then&lt;br /&gt;
			table.insert( liste, k )&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	table.sort( liste )&lt;br /&gt;
	return table.concat( liste, &amp;#039;\n&amp;#039; )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Insertion dans la table p des fonctions appelées par les&lt;br /&gt;
-- modèles à l&amp;#039;aide d&amp;#039;un adaptateur de fonction.&lt;br /&gt;
local function adaptateur(nomFonction)&lt;br /&gt;
	return function (frame)&lt;br /&gt;
		local args&lt;br /&gt;
		if frame.args.texte or frame.args.titre then&lt;br /&gt;
			args = frame.args&lt;br /&gt;
		else&lt;br /&gt;
			args = frame:getParent().args&lt;br /&gt;
		end&lt;br /&gt;
		return p[nomFonction](args)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local nomsFonction = {&amp;#039;bandeau&amp;#039;, &amp;#039;bandeauAvertissement&amp;#039;, &amp;#039;bandeauSection&amp;#039;, &amp;#039;ébauche&amp;#039; }&lt;br /&gt;
for _, nomFonction in ipairs(nomsFonction) do&lt;br /&gt;
	p[nomFonction] = adaptateur(&amp;#039;_&amp;#039; .. nomFonction)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>wikipedia&gt;Od1n</name></author>
	</entry>
</feed>