Jump to content

Module:Réserve

From Wikiversity

Documentation for this module may be created at Module:Réserve/doc

local p = {}

function decrochette(item)
	local debut,fin = 1,mw.ustring.len(item)
	while mw.ustring.sub(item,debut,debut) == " " do  -- Pour supprimer les espaces avant le double crochet ouvrant
		debut = debut+1
	end
	debut = debut+2
	while mw.ustring.sub(item,debut,debut) == " " do  -- Pour supprimer les espaces après le double crochet ouvrant
		debut = debut + 1
	end
	while mw.ustring.sub(item,fin,fin) == " " do      -- Pour suppimer les espaces après le double crochet fermant
		fin = fin - 1
	end
	fin = fin-2
	while mw.ustring.sub(item,fin,fin) == " " do      -- Pour suppimer les espace avant le double crochet fermant
		fin = fin - 1
	end
	item = mw.ustring.sub(item,debut,fin)             -- Suppression des doubles crochets et des espaces superflus
	fin = mw.ustring.find(item,"|")                   -- Y a t'il modification du titre de la page
	if fin then
		item = mw.ustring.sub(item,1,fin-1)           -- si oui, suppression de la modification
	end
	return item
end

function nettoie(item)
	local debut,fin = 1,mw.ustring.len(item)
	while mw.ustring.sub(item,debut,debut) == " " do  -- Pour supprimer les espaces au début
		debut = debut+1
	end
	while mw.ustring.sub(item,fin,fin) == " " do      -- Pour suppimer les espaces à la fin
		fin = fin - 1
	end
	return mw.ustring.sub(item,debut,fin)             -- c’est propre !
end

function lit(page)
	local title = mw.title.new(page)
	local texte
	if title ~= nil then
		texte = title.getContent(title)
	end
	return texte
end

function model(page,mod,item)
	local texte = lit(page)
	local repere = 1
	local taille = 1
	if texte ~= nil then 
		repere = mw.ustring.find(texte,mod)                 -- Recherche la position du modèle
		if tonumber(item) then
			repere = mw.ustring.find(texte,"| "..item,repere)   -- Dans le modèle recherche l’article indexé par un nombre
			if repere then repere = repere+2 end
		else
			repere = mw.ustring.find(texte,item,repere)         -- Dans le modèle recherche l'article
		end
		if repere then
			taille = mw.ustring.find(texte,'\
',repere)                                                   -- Puis recherche le premier retour chariot qui suit
			texte = mw.ustring.sub(texte,repere,taille-1)       -- L'article est isolé
			taille = taille - repere                            -- Calcul de la taille de l'article
			repere = mw.ustring.find(texte,"=")                 -- Repère le =
			repere = repere+1                                   -- Et regarde ce qu’il y a après
			while mw.ustring.sub(texte,repere,repere) == " " do -- Cherche le début du paramètre
				repere = repere+1
			end
			while mw.ustring.sub(texte,taille,taille) == " " do -- Pour supprimer les éventuel espace en fin de ligne
				taille = taille-1
			end
			texte = mw.ustring.sub(texte,repere,taille)         -- isole le paramètre
		else
			texte = repere
		end
	end
	return texte
end

function maj(phrase)
	local debut = string.sub(phrase,1,1)  --Extrait la première lettre de la phrase
	local fin = string.sub(phrase,2)      --Extrait la fin de la phrase (sans la première lettre)
	return string.upper(debut)..string.lower(fin) -- Reconstruit la phrase en mettant la première lettre en majuscule et le reste en minuscule
end

function p.test(frame)
	local reponse = ""
	tableau = model(frame.args[1],frame.args[2],frame.args[3])
	return tableau
end

return p