<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://rishon.rcorp.fr/index.php?action=history&amp;feed=atom&amp;title=Module%3ANom_dynastique</id>
	<title>Module:Nom dynastique - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://rishon.rcorp.fr/index.php?action=history&amp;feed=atom&amp;title=Module%3ANom_dynastique"/>
	<link rel="alternate" type="text/html" href="https://rishon.rcorp.fr/index.php?title=Module:Nom_dynastique&amp;action=history"/>
	<updated>2026-09-05T15:41:34Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://rishon.rcorp.fr/index.php?title=Module:Nom_dynastique&amp;diff=908&amp;oldid=prev</id>
		<title>RubnK : 1 version importée</title>
		<link rel="alternate" type="text/html" href="https://rishon.rcorp.fr/index.php?title=Module:Nom_dynastique&amp;diff=908&amp;oldid=prev"/>
		<updated>2025-06-27T14:52:42Z</updated>

		<summary type="html">&lt;p&gt;1 version importée&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 27 juin 2025 à 16:52&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;fr&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(Aucune différence)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>RubnK</name></author>
	</entry>
	<entry>
		<id>https://rishon.rcorp.fr/index.php?title=Module:Nom_dynastique&amp;diff=907&amp;oldid=prev</id>
		<title>wp&gt;Od1n : correction paramètre «&amp;nbsp;separateur&amp;nbsp;» inutilisé (introduit dans 141564305, inutilisé depuis 195105315)</title>
		<link rel="alternate" type="text/html" href="https://rishon.rcorp.fr/index.php?title=Module:Nom_dynastique&amp;diff=907&amp;oldid=prev"/>
		<updated>2023-05-13T05:55:23Z</updated>

		<summary type="html">&lt;p&gt;correction paramètre « separateur » inutilisé (introduit dans &lt;a href=&quot;/index.php/Sp%C3%A9cial:Diff/141564305&quot; title=&quot;Spécial:Diff/141564305&quot;&gt;141564305&lt;/a&gt;, inutilisé depuis &lt;a href=&quot;/index.php/Sp%C3%A9cial:Diff/195105315&quot; title=&quot;Spécial:Diff/195105315&quot;&gt;195105315&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
local Outils = require( &amp;#039;Module:Outils&amp;#039; )&lt;br /&gt;
local trim = Outils.trim&lt;br /&gt;
local Romains = require(&amp;#039;Module:Chiffres romains&amp;#039;)&lt;br /&gt;
local conversion = Romains.conversion&lt;br /&gt;
&lt;br /&gt;
-- Ce booléen permet d&amp;#039;indiquer si on doit prendre le complément du lien pour l&amp;#039;afficher (exemple : &amp;quot;Louis Ier d&amp;#039;Italie&amp;quot;); c&amp;#039;est le cas&lt;br /&gt;
-- de l&amp;#039;appel par le modèle Souverain3&lt;br /&gt;
local afficher_le_complement = false&lt;br /&gt;
&lt;br /&gt;
local typenom = &amp;#039;[%C]+&amp;#039;&lt;br /&gt;
&lt;br /&gt;
local function trouveRomain(chaine)&lt;br /&gt;
	local test = &amp;#039; &amp;#039; .. chaine .. &amp;#039; &amp;#039;&lt;br /&gt;
	local positionDebut, _, quantieme = string.find(test, &amp;#039; ([IVXLCDM]+),? &amp;#039;)&lt;br /&gt;
	if not positionDebut then&lt;br /&gt;
		positionDebut, _, quantieme = string.find(test, &amp;#039; (Ier),? &amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	if not positionDebut then&lt;br /&gt;
		positionDebut, _, quantieme = string.find(test, &amp;#039; (Ire),? &amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	if positionDebut then&lt;br /&gt;
		return positionDebut, positionDebut + string.len(quantieme) - 1, quantieme&lt;br /&gt;
	else&lt;br /&gt;
		return nil, nil, nil&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Extraction d&amp;#039;une chaîne, on recherche si c&amp;#039;est de la forme : &amp;quot;nom&amp;quot; &amp;quot;chiffres romains&amp;quot; &amp;quot;complément&amp;quot;&lt;br /&gt;
-- En retour, le premier paramètre indique s&amp;#039;il y a présence d&amp;#039;un nombre en chiffres romains&lt;br /&gt;
function p.chaine(chaine)&lt;br /&gt;
	local function extraction_elements(chaine)&lt;br /&gt;
		local positionDebut, positionFin, quantieme = trouveRomain(chaine)&lt;br /&gt;
		if not positionDebut then&lt;br /&gt;
			return false, &amp;#039;&amp;#039;, &amp;#039;&amp;#039;, &amp;#039;&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
		local nom = string.sub(chaine, 1, positionDebut - 2)&lt;br /&gt;
		local complement = &amp;#039;&amp;#039;&lt;br /&gt;
		if positionFin &amp;lt; string.len(chaine) then&lt;br /&gt;
			complement = trim(string.sub(chaine, positionFin + 1))&lt;br /&gt;
		end&lt;br /&gt;
		return true, nom, quantieme, complement&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Si le paramètre passé n&amp;#039;existe pas, retour&lt;br /&gt;
	if not chaine or chaine == &amp;#039;&amp;#039; then&lt;br /&gt;
		return false, &amp;#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;Aucun paramètre&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local presence_romain, nom, quantieme, complement = extraction_elements(chaine)&lt;br /&gt;
&lt;br /&gt;
	return true, &amp;#039;&amp;#039;, presence_romain, nom, quantieme, complement&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.surnom(chaine)&lt;br /&gt;
	local presence_italiques, presence_guillemets, presence_dit, presence_virgule = false, false, false, false&lt;br /&gt;
	if mw.ustring.match(chaine, &amp;quot;&amp;#039;&amp;#039;&amp;quot;) then&lt;br /&gt;
		presence_italiques = true&lt;br /&gt;
		chaine = mw.ustring.gsub(chaine, &amp;quot;&amp;#039;&amp;#039;&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	if mw.ustring.match(chaine, &amp;#039;«&amp;#039;) then&lt;br /&gt;
		presence_guillemets = true&lt;br /&gt;
		chaine = mw.ustring.gsub(chaine, &amp;#039;« &amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
		chaine = mw.ustring.gsub(chaine, &amp;#039;«&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	if mw.ustring.match(chaine, &amp;#039;»&amp;#039;) then&lt;br /&gt;
		presence_guillemets = true&lt;br /&gt;
		chaine = mw.ustring.gsub(chaine, &amp;#039; »&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
		chaine = mw.ustring.gsub(chaine, &amp;#039;»&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	if mw.ustring.match(chaine, &amp;#039; dite? &amp;#039;) or (mw.ustring.sub(chaine, 1, 4) == &amp;#039;dit &amp;#039;) or (mw.ustring.sub(chaine, 1, 5) == &amp;#039;dite &amp;#039;) then&lt;br /&gt;
		presence_dit = true&lt;br /&gt;
		chaine = mw.ustring.gsub(chaine, &amp;#039;dit &amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
		chaine = mw.ustring.gsub(chaine, &amp;#039;dite &amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	if presence_italiques or presence_guillemets or presence_dit then&lt;br /&gt;
		if mw.ustring.match(chaine, &amp;#039;, &amp;#039;) then&lt;br /&gt;
			presence_virgule = true&lt;br /&gt;
			chaine = mw.ustring.gsub(chaine, &amp;#039;, &amp;#039;, &amp;#039; &amp;#039;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return chaine, presence_italiques, presence_guillemets, presence_dit, presence_virgule&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.nettoyage(chaine)&lt;br /&gt;
	-- remplacement des espaces insécables&lt;br /&gt;
	if chaine then&lt;br /&gt;
		chaine = chaine&lt;br /&gt;
			-- nbsp&lt;br /&gt;
			:gsub( &amp;#039;\194\160&amp;#039;, &amp;#039; &amp;#039; )&lt;br /&gt;
			:gsub( &amp;#039;&amp;amp;nbsp;&amp;#039;, &amp;#039; &amp;#039; )&lt;br /&gt;
			:gsub( &amp;#039;&amp;amp;#160;&amp;#039;, &amp;#039; &amp;#039; )&lt;br /&gt;
			-- narrow nbsp&lt;br /&gt;
			:gsub( &amp;#039;\226\128\175&amp;#039;, &amp;#039; &amp;#039; )&lt;br /&gt;
			:gsub( &amp;#039;&amp;amp;#8239;&amp;#039;, &amp;#039; &amp;#039; )&lt;br /&gt;
			-- thin space&lt;br /&gt;
			:gsub( &amp;#039;\226\128\137&amp;#039;, &amp;#039; &amp;#039; )&lt;br /&gt;
			:gsub( &amp;#039;&amp;amp;thinsp;&amp;#039;, &amp;#039; &amp;#039; )&lt;br /&gt;
			:gsub( &amp;#039;&amp;amp;#8201;&amp;#039;, &amp;#039; &amp;#039; )&lt;br /&gt;
			-- simple space&lt;br /&gt;
			:gsub( &amp;#039;&amp;amp;#32;&amp;#039;, &amp;#039; &amp;#039; )&lt;br /&gt;
	end&lt;br /&gt;
	return chaine&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Mise en forme, traitement des donneés&lt;br /&gt;
function p.traitement(a1, a2, a3, a4)&lt;br /&gt;
	local test = true&lt;br /&gt;
	local message = &amp;#039;&amp;#039;&lt;br /&gt;
	local lien = &amp;#039;&amp;#039;&lt;br /&gt;
	local nom = &amp;#039;&amp;#039;&lt;br /&gt;
	local quantieme = &amp;#039;&amp;#039;&lt;br /&gt;
	local complement = &amp;#039;&amp;#039;&lt;br /&gt;
	local nom_affiche = &amp;#039;&amp;#039;&lt;br /&gt;
	local quantieme_affiche = &amp;#039;&amp;#039;&lt;br /&gt;
	local complement_affiche = &amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	local presence_romains, presence_italiques, presence_guillemets&lt;br /&gt;
&lt;br /&gt;
	a1 = p.nettoyage(a1)&lt;br /&gt;
	a2 = p.nettoyage(a2)&lt;br /&gt;
	a3 = p.nettoyage(a3)&lt;br /&gt;
	a4 = p.nettoyage(a4)&lt;br /&gt;
&lt;br /&gt;
	-- Si le premier paramètre n&amp;#039;existe pas, retour&lt;br /&gt;
	if (a1 == &amp;#039;&amp;#039;) and (a2 == &amp;#039;&amp;#039;) then&lt;br /&gt;
		return false, &amp;#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;Paramètres absents&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Test de présence d&amp;#039;un deuxième paramètre&lt;br /&gt;
	if a2 and a2 ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		-- Cas où il y a au moins deux paramètres&lt;br /&gt;
		if string.match(a2, &amp;#039;^[IVXLCDM]+$&amp;#039;) or a2 == &amp;#039;Ier&amp;#039; or a2 == &amp;#039;Ire&amp;#039; then&lt;br /&gt;
			-- Si le deuxième paramètre est un nombre en chiffres romains, on est dans le cas de :&lt;br /&gt;
			--{{Souverain|Louis|XIV|(roi de France)|, le Roi Soleil}} et similaires&lt;br /&gt;
			nom = a1&lt;br /&gt;
			nom_affiche = a1&lt;br /&gt;
			quantieme = a2&lt;br /&gt;
			test, message, quantieme_affiche = p.typo(quantieme)&lt;br /&gt;
			if not test then return test, message end&lt;br /&gt;
			lien = nom..&amp;#039; &amp;#039;..quantieme&lt;br /&gt;
			complement = &amp;#039;&amp;#039;&lt;br /&gt;
			if a3 then&lt;br /&gt;
				complement = a3&lt;br /&gt;
				if string.len(complement) &amp;gt; 0 then&lt;br /&gt;
					lien = lien..&amp;#039; &amp;#039;..p.surnom(complement)&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			if not a4 then a4 =&amp;#039;&amp;#039; end&lt;br /&gt;
			if a4 == &amp;#039;&amp;#039; then&lt;br /&gt;
				if a3 and afficher_le_complement then&lt;br /&gt;
					complement_affiche = a3&lt;br /&gt;
				end&lt;br /&gt;
			else&lt;br /&gt;
				complement_affiche = a4&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			-- Si le deuxième paramètre n&amp;#039;est pas un nombre en chiffres romains, soit il y a une erreur,&lt;br /&gt;
			-- soit on est dans le cas de :&lt;br /&gt;
			--{{Souverain|Louis XIV (roi de France)|, le Roi Soleil}} et similaires&lt;br /&gt;
			--ou {{Souverain|René II d&amp;#039;Anjou|René III de Poitiers}}&lt;br /&gt;
			--Il faut qu&amp;#039;il y ait un nombre romain dans au moins un des deux&lt;br /&gt;
			lien = a1&lt;br /&gt;
			-- On vérifie d&amp;#039;abord si complément contient un texte à mettre en forme, auquel cas il s&amp;#039;impose sur le libellé du lien&lt;br /&gt;
			test, message, presence_romains, nom, quantieme, complement = p.chaine(a2)&lt;br /&gt;
			if not test then return test, message end&lt;br /&gt;
			if presence_romains then&lt;br /&gt;
				test, message, quantieme_affiche = p.typo(quantieme)&lt;br /&gt;
				if not test then return test, message end&lt;br /&gt;
				nom_affiche = nom&lt;br /&gt;
				if complement then&lt;br /&gt;
					complement_affiche = complement&lt;br /&gt;
				end&lt;br /&gt;
			else&lt;br /&gt;
				test, message, presence_romains, nom, quantieme, complement = p.chaine(a1)&lt;br /&gt;
				if not test then return test, message end&lt;br /&gt;
				nom_affiche = nom&lt;br /&gt;
				if presence_romains then&lt;br /&gt;
					test, message, quantieme_affiche = p.typo(quantieme)&lt;br /&gt;
					if not test then return test, message end&lt;br /&gt;
					complement_affiche = a2&lt;br /&gt;
				else&lt;br /&gt;
					test = false&lt;br /&gt;
					message = &amp;#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;Un nombre en chiffres romains est requis&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		-- Si le deuxième paramètre n&amp;#039;existe pas, on est dans le cas de : {{Souverain|Louis XIV de France}} et similaires&lt;br /&gt;
		test, message, presence_romains, nom, quantieme, complement = p.chaine(a1)&lt;br /&gt;
		if not test then return test, message end&lt;br /&gt;
		lien = a1&lt;br /&gt;
		if presence_romains then&lt;br /&gt;
			nom_affiche = nom&lt;br /&gt;
			test, message, quantieme_affiche = p.typo(quantieme)&lt;br /&gt;
			if not test then return test, message end&lt;br /&gt;
		end&lt;br /&gt;
		lien, presence_italiques, presence_guillemets = p.surnom(lien)&lt;br /&gt;
		if afficher_le_complement == true then&lt;br /&gt;
			if trim(complement) then&lt;br /&gt;
				complement_affiche = trim(complement)&lt;br /&gt;
			else&lt;br /&gt;
				if (presence_italiques or presence_guillemets) and not presence_romains then&lt;br /&gt;
					complement_affiche = a1&lt;br /&gt;
				else&lt;br /&gt;
					afficher_le_complement = false&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return test, message, lien, nom_affiche, quantieme_affiche, complement_affiche&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.typo(quantieme)&lt;br /&gt;
	local test = true&lt;br /&gt;
	local message = &amp;#039;&amp;#039;&lt;br /&gt;
	-- Mise en forme typographique : éventuelle infobulle et éventuel exposant à partir du chiffre romain envoyé&lt;br /&gt;
	-- On obtient le &amp;quot;quantième affiché&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	-- On teste d&amp;#039;abord si on a une chaine de la forme &amp;quot;Ier&amp;quot; ou &amp;quot;Ire&amp;quot;&lt;br /&gt;
	local test1 = &amp;#039;non&amp;#039;&lt;br /&gt;
	if string.len(quantieme) &amp;gt; 2 then&lt;br /&gt;
		test1 = string.sub(quantieme, -2)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- émulation des modèles {{Ire}}, {{III}}&lt;br /&gt;
	local infobulle = &amp;#039;&amp;#039;&lt;br /&gt;
	local exposant = &amp;#039;non&amp;#039;&lt;br /&gt;
	local numero = &amp;#039;&amp;#039;&lt;br /&gt;
	local fin = &amp;#039;&amp;#039;&lt;br /&gt;
	local quantieme_affiche = &amp;#039;&amp;#039;&lt;br /&gt;
	if (test1 == &amp;#039;re&amp;#039;) or (test1 == &amp;#039;er&amp;#039;) then&lt;br /&gt;
		if test1 == &amp;#039;re&amp;#039; then&lt;br /&gt;
			exposant = &amp;#039;&amp;lt;sup&amp;gt;re&amp;lt;/sup&amp;gt;&amp;#039;&lt;br /&gt;
			infobulle = &amp;#039;première&amp;#039;&lt;br /&gt;
		else&lt;br /&gt;
			exposant = &amp;#039;&amp;lt;sup&amp;gt;er&amp;lt;/sup&amp;gt;&amp;#039;&lt;br /&gt;
			infobulle = &amp;quot;premier&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
		quantieme = &amp;#039;I&amp;#039;..test1&lt;br /&gt;
		numero = &amp;#039;I&amp;#039;&lt;br /&gt;
		fin = &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;..exposant..&amp;#039;&amp;lt;/abbr&amp;gt;&amp;#039;&lt;br /&gt;
	else&lt;br /&gt;
		quantieme = string.upper(quantieme)&lt;br /&gt;
		test, message, infobulle = conversion(quantieme)&lt;br /&gt;
		if not test then return test, message, &amp;#039;&amp;#039; end&lt;br /&gt;
		numero = quantieme&lt;br /&gt;
		fin = &amp;#039;&amp;lt;/span&amp;gt;&amp;lt;/abbr&amp;gt;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	if infobulle == &amp;#039;&amp;#039;	then&lt;br /&gt;
		infobulle = &amp;#039;inconnu&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	quantieme_affiche = &amp;#039;&amp;lt;abbr class=&amp;quot;abbr&amp;quot; title=&amp;quot;&amp;#039;..infobulle..&amp;#039;&amp;quot; &amp;gt;&amp;lt;span class=&amp;quot;romain&amp;quot; style=&amp;quot;text-transform:uppercase&amp;quot;&amp;gt;&amp;#039;..numero..fin&lt;br /&gt;
	return test, message, quantieme_affiche&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.typo_complement(chaine)&lt;br /&gt;
	if chaine then&lt;br /&gt;
		if string.len(chaine) &amp;gt; 0 then&lt;br /&gt;
-- si le complement affiché (&amp;quot;, le Roi Soleil&amp;quot; dans le cas de Louis XIV) commence par une virgule, on ne met pas d&amp;#039;espace avant,&lt;br /&gt;
-- mais on vérifie qu&amp;#039;il y a bien une espace entre la virgule et le mot suivant&lt;br /&gt;
			if not (string.sub(chaine, 1, 1) == &amp;#039;,&amp;#039;) then&lt;br /&gt;
				chaine = &amp;#039; &amp;#039;..chaine&lt;br /&gt;
			end&lt;br /&gt;
-- S&amp;#039;il y a des guillemets, on compense le bug qui empêche la gestion correcte des insécables dans un lien wiki&lt;br /&gt;
			if mw.ustring.match(chaine, &amp;#039;« &amp;#039;..typenom..&amp;#039; »&amp;#039;) then&lt;br /&gt;
				chaine = mw.ustring.gsub(chaine, &amp;#039;« &amp;#039;, &amp;#039;«&amp;amp;#160;&amp;#039;)&lt;br /&gt;
				chaine = mw.ustring.gsub(chaine, &amp;#039; »&amp;#039;, &amp;#039;&amp;amp;#160;»&amp;#039;)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return true, &amp;#039;&amp;#039;, chaine&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Fonction de mise en forme du lien à afficher&lt;br /&gt;
-- de la forme [[lien | &amp;quot;nom affiché&amp;quot;&amp;amp;nbsp;&amp;quot;quantième affiché&amp;quot; &amp;quot;complément affiché&amp;quot; ]], les éléments de la partie droite sont optionnels&lt;br /&gt;
function p.ecriture_avec_lien(lien, nom_affiche, quantieme_affiche, complement_affiche)&lt;br /&gt;
	local test = true&lt;br /&gt;
	local texte1 = &amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	local test, message, complement_affiche2 = p.typo_complement(complement_affiche)&lt;br /&gt;
&lt;br /&gt;
	texte1 = &amp;#039;[[&amp;#039;..lien&lt;br /&gt;
	if nom_affiche then&lt;br /&gt;
		if string.len(nom_affiche) &amp;gt; 0 then&lt;br /&gt;
			if string.len(quantieme_affiche) &amp;gt; 0 then&lt;br /&gt;
				-- S&amp;#039;il y a un nombre, ajout d&amp;#039;un &amp;quot;nowrap&amp;quot; pour l&amp;#039;espace insécable&lt;br /&gt;
				texte1 = texte1..&amp;#039;|&amp;lt;span class=&amp;quot;nowrap&amp;quot;&amp;gt;&amp;#039;..nom_affiche..&amp;#039; &amp;#039;..quantieme_affiche..&amp;#039;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
				if complement_affiche2&lt;br /&gt;
				then&lt;br /&gt;
					if string.len(complement_affiche2) &amp;gt; 0 then&lt;br /&gt;
						texte1 = texte1..complement_affiche2&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			else&lt;br /&gt;
				texte1 = texte1..&amp;#039;|&amp;#039;..nom_affiche&lt;br /&gt;
				if string.len(complement_affiche2) &amp;gt; 0 then&lt;br /&gt;
					texte1 = texte1..complement_affiche2&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		if complement_affiche2 then&lt;br /&gt;
			if string.len(complement_affiche2) &amp;gt; 0 then&lt;br /&gt;
				texte1 = texte1..&amp;#039;|&amp;#039;..trim(complement_affiche2)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	texte1 = texte1..&amp;quot;]]&amp;quot;&lt;br /&gt;
	return test, message, texte1&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.ecriture_sans_lien(lien, nom_affiche, quantieme_affiche, complement_affiche)&lt;br /&gt;
	local test = true&lt;br /&gt;
	local message = &amp;#039;&amp;#039;&lt;br /&gt;
	local texte1 = &amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	local test, message, complement_affiche2 = p.typo_complement(complement_affiche)&lt;br /&gt;
&lt;br /&gt;
	if quantieme_affiche and nom_affiche then&lt;br /&gt;
		if (string.len(nom_affiche) &amp;gt; 0) then&lt;br /&gt;
			if string.len(quantieme_affiche) &amp;gt; 0 then&lt;br /&gt;
				-- S&amp;#039;il y a un nombre, ajout d&amp;#039;un &amp;quot;nowrap&amp;quot; pour l&amp;#039;espace insécable&lt;br /&gt;
				texte1 = texte1..&amp;#039;&amp;lt;span class=&amp;quot;nowrap&amp;quot;&amp;gt;&amp;#039;..nom_affiche..&amp;#039; &amp;#039;..quantieme_affiche..&amp;#039;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
				if complement_affiche2 then&lt;br /&gt;
					texte1 = texte1..complement_affiche2&lt;br /&gt;
				end&lt;br /&gt;
			else&lt;br /&gt;
				if complement_affiche2 then&lt;br /&gt;
					texte1 = texte1..nom_affiche..complement_affiche2&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			texte1 = texte1..quantieme_affiche&lt;br /&gt;
			if complement_affiche2 then&lt;br /&gt;
				texte1 = texte1..complement_affiche2&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		if complement_affiche2 then&lt;br /&gt;
			if string.len(complement_affiche2) &amp;gt; 0 then&lt;br /&gt;
				texte1 = texte1..trim(complement_affiche2)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if texte1 == &amp;#039;&amp;#039; then&lt;br /&gt;
		texte1 = lien&lt;br /&gt;
	end&lt;br /&gt;
	return test, message, texte1&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Affichage dans le cas général (émule le modèle Souverain2)&lt;br /&gt;
function p.Souverain2(frame)&lt;br /&gt;
	local args = Outils.extractArgs( frame )&lt;br /&gt;
	local arg1 = trim(args[1]) or &amp;#039;&amp;#039;&lt;br /&gt;
	local arg2 = trim(args[2]) or &amp;#039;&amp;#039;&lt;br /&gt;
	local arg3 = trim(args[3]) or &amp;#039;&amp;#039;&lt;br /&gt;
	local arg4 = trim(args[4]) or &amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	local test, message, t1, t2, t3, t4 = p.traitement(arg1, arg2, arg3, arg4)&lt;br /&gt;
	if not test then&lt;br /&gt;
		return message&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local test, message, texte = p.ecriture_avec_lien(t1, t2, t3, t4)&lt;br /&gt;
	if not test then&lt;br /&gt;
		return message&lt;br /&gt;
	else&lt;br /&gt;
		return texte&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Affichage dans le cas où le lien est de la forme [[Charles V le Sage|{{nobr|Charles V}} le Sage]]&lt;br /&gt;
-- correspond au modèle Souverain3, ce qui permet d&amp;#039;écrire :&lt;br /&gt;
-- {{Souverain3|Charles V le Sage}}&lt;br /&gt;
-- plutôt que :&lt;br /&gt;
-- {{Souverain2|Charles V le Sage|le Sage}}&lt;br /&gt;
-- (émule le modèle Souverain3)&lt;br /&gt;
function p.Souverain3(frame)&lt;br /&gt;
	local args = Outils.extractArgs( frame )&lt;br /&gt;
	local a1 = trim(args[1]) or &amp;#039;&amp;#039;&lt;br /&gt;
	local a2 = trim(args[2]) or &amp;#039;&amp;#039;&lt;br /&gt;
	local a3 = trim(args[3]) or &amp;#039;&amp;#039;&lt;br /&gt;
	local a4 = trim(args[4]) or &amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	afficher_le_complement = true&lt;br /&gt;
	local test, message, t1, t2, t3, t4 = p.traitement(a1, a2, a3)&lt;br /&gt;
	if not test then&lt;br /&gt;
		return message&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local test, message, texte = p.ecriture_avec_lien(t1, t2, t3, t4)&lt;br /&gt;
	if not test then&lt;br /&gt;
		return message&lt;br /&gt;
	else&lt;br /&gt;
		return texte&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Affichage dans le cas où on veut une mise en forme correspndant à {{nobr|Charles {{V}}}} ou {{nobr|Louis {{Ier}}}}&lt;br /&gt;
-- Aucune mise en forme s&amp;#039;il n&amp;#039;y a pas un nombre en chiffres romains&lt;br /&gt;
-- (correspond au modèle Souverain-)&lt;br /&gt;
function p.Souverain_sans_lien(frame)&lt;br /&gt;
	local args = Outils.extractArgs( frame )&lt;br /&gt;
	local a1 = trim(args[1]) or &amp;#039;&amp;#039;&lt;br /&gt;
	local a2 = trim(args[2]) or &amp;#039;&amp;#039;&lt;br /&gt;
	local a3 = trim(args[3]) or &amp;#039;&amp;#039;&lt;br /&gt;
	local a4 = trim(args[4]) or &amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	afficher_le_complement = false&lt;br /&gt;
	local test, message, t1, t2, t3, t4 = p.traitement(a1, a2, a3, a4)&lt;br /&gt;
	if not test then&lt;br /&gt;
		return message&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local test, message, texte = p.ecriture_sans_lien(t1, t2, t3, t4)&lt;br /&gt;
	if not test then&lt;br /&gt;
		return message&lt;br /&gt;
	else&lt;br /&gt;
		return texte&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>wp&gt;Od1n</name></author>
	</entry>
</feed>