<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wicri-demo.istex.fr/Wicri/Europe/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://wicri-demo.istex.fr/Wicri/Europe/fr/index.php?action=history&amp;feed=atom&amp;title=Module%3ANom_dynastique"/>
	<link rel="alternate" type="text/html" href="https://wicri-demo.istex.fr/Wicri/Europe/fr/index.php?title=Module:Nom_dynastique&amp;action=history"/>
	<updated>2026-04-19T11:01:27Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.31.10</generator>
	<entry>
		<id>https://wicri-demo.istex.fr/Wicri/Europe/fr/index.php?title=Module:Nom_dynastique&amp;diff=8435&amp;oldid=prev</id>
		<title>Jacques Ducloy : Page créée avec « local p = {}  local Outils = require( 'Module:Outils' ) local trim = Outils.trim local Romains = require('Module:Chiffres romains') local conversion = Romains.conversion... »</title>
		<link rel="alternate" type="text/html" href="https://wicri-demo.istex.fr/Wicri/Europe/fr/index.php?title=Module:Nom_dynastique&amp;diff=8435&amp;oldid=prev"/>
		<updated>2024-06-08T12:59:23Z</updated>

		<summary type="html">&lt;p&gt;Page créée avec « local p = {}  local Outils = require( &amp;#039;Module:Outils&amp;#039; ) local trim = Outils.trim local Romains = require(&amp;#039;Module:Chiffres romains&amp;#039;) local conversion = Romains.conversion... »&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( 'Module:Outils' )&lt;br /&gt;
local trim = Outils.trim&lt;br /&gt;
local Romains = require('Module:Chiffres romains')&lt;br /&gt;
local conversion = Romains.conversion&lt;br /&gt;
&lt;br /&gt;
-- Ce booléen permet d'indiquer si on doit prendre le complément du lien pour l'afficher (exemple : &amp;quot;Louis Ier d'Italie&amp;quot;); c'est le cas&lt;br /&gt;
-- de l'appel par le modèle Souverain3&lt;br /&gt;
local afficher_le_complement = false&lt;br /&gt;
&lt;br /&gt;
local typenom = '[%C]+'&lt;br /&gt;
&lt;br /&gt;
local function trouveRomain(chaine)&lt;br /&gt;
	local test = ' ' .. chaine .. ' '&lt;br /&gt;
	local positionDebut, _, quantieme = string.find(test, ' ([IVXLCDM]+),? ')&lt;br /&gt;
	if not positionDebut then&lt;br /&gt;
		positionDebut, _, quantieme = string.find(test, ' (Ier),? ')&lt;br /&gt;
	end&lt;br /&gt;
	if not positionDebut then&lt;br /&gt;
		positionDebut, _, quantieme = string.find(test, ' (Ire),? ')&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'une chaîne, on recherche si c'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'il y a présence d'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, '', '', ''&lt;br /&gt;
		end&lt;br /&gt;
		local nom = string.sub(chaine, 1, positionDebut - 2)&lt;br /&gt;
		local complement = ''&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'existe pas, retour&lt;br /&gt;
	if not chaine or chaine == '' then&lt;br /&gt;
		return false, '&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;Aucun paramètre&amp;lt;/span&amp;gt;'&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, '', 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;quot;) then&lt;br /&gt;
		presence_italiques = true&lt;br /&gt;
		chaine = mw.ustring.gsub(chaine, &amp;quot;''&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	if mw.ustring.match(chaine, '«') then&lt;br /&gt;
		presence_guillemets = true&lt;br /&gt;
		chaine = mw.ustring.gsub(chaine, '« ', '')&lt;br /&gt;
		chaine = mw.ustring.gsub(chaine, '«', '')&lt;br /&gt;
	end&lt;br /&gt;
	if mw.ustring.match(chaine, '»') then&lt;br /&gt;
		presence_guillemets = true&lt;br /&gt;
		chaine = mw.ustring.gsub(chaine, ' »', '')&lt;br /&gt;
		chaine = mw.ustring.gsub(chaine, '»', '')&lt;br /&gt;
	end&lt;br /&gt;
	if mw.ustring.match(chaine, ' dite? ') or (mw.ustring.sub(chaine, 1, 4) == 'dit ') or (mw.ustring.sub(chaine, 1, 5) == 'dite ') then&lt;br /&gt;
		presence_dit = true&lt;br /&gt;
		chaine = mw.ustring.gsub(chaine, 'dit ', '')&lt;br /&gt;
		chaine = mw.ustring.gsub(chaine, 'dite ', '')&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, ', ') then&lt;br /&gt;
			presence_virgule = true&lt;br /&gt;
			chaine = mw.ustring.gsub(chaine, ', ', ' ')&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( '\194\160', ' ' )&lt;br /&gt;
			:gsub( '&amp;amp;nbsp;', ' ' )&lt;br /&gt;
			:gsub( '&amp;amp;#160;', ' ' )&lt;br /&gt;
			-- narrow nbsp&lt;br /&gt;
			:gsub( '\226\128\175', ' ' )&lt;br /&gt;
			:gsub( '&amp;amp;#8239;', ' ' )&lt;br /&gt;
			-- thin space&lt;br /&gt;
			:gsub( '\226\128\137', ' ' )&lt;br /&gt;
			:gsub( '&amp;amp;thinsp;', ' ' )&lt;br /&gt;
			:gsub( '&amp;amp;#8201;', ' ' )&lt;br /&gt;
			-- simple space&lt;br /&gt;
			:gsub( '&amp;amp;#32;', ' ' )&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 = ''&lt;br /&gt;
	local lien = ''&lt;br /&gt;
	local nom = ''&lt;br /&gt;
	local quantieme = ''&lt;br /&gt;
	local complement = ''&lt;br /&gt;
	local nom_affiche = ''&lt;br /&gt;
	local quantieme_affiche = ''&lt;br /&gt;
	local complement_affiche = ''&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'existe pas, retour&lt;br /&gt;
	if (a1 == '') and (a2 == '') then&lt;br /&gt;
		return false, '&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;Paramètres absents&amp;lt;/span&amp;gt;'&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Test de présence d'un deuxième paramètre&lt;br /&gt;
	if a2 and a2 ~= '' then&lt;br /&gt;
		-- Cas où il y a au moins deux paramètres&lt;br /&gt;
		if string.match(a2, '^[IVXLCDM]+$') or a2 == 'Ier' or a2 == 'Ire' 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..' '..quantieme&lt;br /&gt;
			complement = ''&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..' '..p.surnom(complement)&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			if not a4 then a4 ='' end&lt;br /&gt;
			if a4 == '' 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'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'Anjou|René III de Poitiers}}&lt;br /&gt;
			--Il faut qu'il y ait un nombre romain dans au moins un des deux&lt;br /&gt;
			lien = a1&lt;br /&gt;
			-- On vérifie d'abord si complément contient un texte à mettre en forme, auquel cas il s'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;lt;span class=&amp;quot;error&amp;quot;&amp;gt;Un nombre en chiffres romains est requis&amp;lt;/span&amp;gt;'&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'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 = ''&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'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 = 'non'&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 = ''&lt;br /&gt;
	local exposant = 'non'&lt;br /&gt;
	local numero = ''&lt;br /&gt;
	local fin = ''&lt;br /&gt;
	local quantieme_affiche = ''&lt;br /&gt;
	if (test1 == 're') or (test1 == 'er') then&lt;br /&gt;
		if test1 == 're' then&lt;br /&gt;
			exposant = '&amp;lt;sup&amp;gt;re&amp;lt;/sup&amp;gt;'&lt;br /&gt;
			infobulle = 'première'&lt;br /&gt;
		else&lt;br /&gt;
			exposant = '&amp;lt;sup&amp;gt;er&amp;lt;/sup&amp;gt;'&lt;br /&gt;
			infobulle = &amp;quot;premier&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
		quantieme = 'I'..test1&lt;br /&gt;
		numero = 'I'&lt;br /&gt;
		fin = '&amp;lt;/span&amp;gt;'..exposant..'&amp;lt;/abbr&amp;gt;'&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, '' end&lt;br /&gt;
		numero = quantieme&lt;br /&gt;
		fin = '&amp;lt;/span&amp;gt;&amp;lt;/abbr&amp;gt;'&lt;br /&gt;
	end&lt;br /&gt;
	if infobulle == ''	then&lt;br /&gt;
		infobulle = 'inconnu'&lt;br /&gt;
	end&lt;br /&gt;
	quantieme_affiche = '&amp;lt;abbr class=&amp;quot;abbr&amp;quot; title=&amp;quot;'..infobulle..'&amp;quot; &amp;gt;&amp;lt;span class=&amp;quot;romain&amp;quot; style=&amp;quot;text-transform:uppercase&amp;quot;&amp;gt;'..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'espace avant,&lt;br /&gt;
-- mais on vérifie qu'il y a bien une espace entre la virgule et le mot suivant&lt;br /&gt;
			if not (string.sub(chaine, 1, 1) == ',') then&lt;br /&gt;
				chaine = ' '..chaine&lt;br /&gt;
			end&lt;br /&gt;
-- S'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, '« '..typenom..' »') then&lt;br /&gt;
				chaine = mw.ustring.gsub(chaine, '« ', '«&amp;amp;#160;')&lt;br /&gt;
				chaine = mw.ustring.gsub(chaine, ' »', '&amp;amp;#160;»')&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return true, '', 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 = ''&lt;br /&gt;
&lt;br /&gt;
	local test, message, complement_affiche2 = p.typo_complement(complement_affiche)&lt;br /&gt;
&lt;br /&gt;
	texte1 = '[['..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'il y a un nombre, ajout d'un &amp;quot;nowrap&amp;quot; pour l'espace insécable&lt;br /&gt;
				texte1 = texte1..'|&amp;lt;span class=&amp;quot;nowrap&amp;quot;&amp;gt;'..nom_affiche..' '..quantieme_affiche..'&amp;lt;/span&amp;gt;'&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..'|'..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..'|'..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 = ''&lt;br /&gt;
	local texte1 = ''&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'il y a un nombre, ajout d'un &amp;quot;nowrap&amp;quot; pour l'espace insécable&lt;br /&gt;
				texte1 = texte1..'&amp;lt;span class=&amp;quot;nowrap&amp;quot;&amp;gt;'..nom_affiche..' '..quantieme_affiche..'&amp;lt;/span&amp;gt;'&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 == '' 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 ''&lt;br /&gt;
	local arg2 = trim(args[2]) or ''&lt;br /&gt;
	local arg3 = trim(args[3]) or ''&lt;br /&gt;
	local arg4 = trim(args[4]) or ''&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'é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 ''&lt;br /&gt;
	local a2 = trim(args[2]) or ''&lt;br /&gt;
	local a3 = trim(args[3]) or ''&lt;br /&gt;
	local a4 = trim(args[4]) or ''&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'il n'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 ''&lt;br /&gt;
	local a2 = trim(args[2]) or ''&lt;br /&gt;
	local a3 = trim(args[3]) or ''&lt;br /&gt;
	local a4 = trim(args[4]) or ''&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>Jacques Ducloy</name></author>
		
	</entry>
</feed>