Module:Yallou34Module1

 Documentation[voir] [modifier] [historique] [purger]


Page de test par l'utilisateur Yallou34 des fonctions LUA avec Scribunto

Utilisation modifier

Fonctions exportables

  • fonction(frame) – description (courte description de fonction(frame) et autres informations pertinentes).
  • fonction2() – description2 (courte description de fonction2() et autres informations pertinentes).

Autres fonctions :

  • fonction() – description2 (courte description de fonction() et autres informations pertinentes).

Modules externes et autres éléments dont ce module a besoin pour fonctionner :

  • mw.title – description (courte description expliquant la dépendance de ce module externe).

Exemples modifier

Pour des exemples, voir la page de test permettant de tester diverses modifications apportées.



local p = {}

function p.Salutation()
    return "Je me forme au langage Lua avec Scribunto."
end
local t = {"Piano","Boule","Tortue","Nénuphar"}
local mt = {}
function mt.__index()
	return "(La clé spécifiée n'existe pas dans cette table)"
end
setmetatable(t,mt)
function p.mtable()
	local reponse = " "
	for i = 1,5 do
		reponse = reponse.."<br />a la clé "..i..", on trouve : "..t[i]
	end
	return reponse
end
function p.horloge()
	local reponse = ""
	local temps = os.clock()
	reponse = reponse.. "<br />La fonction os.clock nous retourne : "..temps
	temps = temps*1000
	reponse = reponse.."<br />Ce qui signifie que "..temps.." millisecondes se sont écoulées depuis le début de l’affichage de cette page."
	return reponse
end
function p.codehex(frame)
	local code = mw.loadData("Module:Nomcouleur")
	local couleur = frame.args[1]
	return "Le code hexadécimal correspondant à la couleur "..couleur.." est "..code[couleur]
end
function p.majuscule(phrase)        -- Pour mettre tout en mot en capitales, utiliser {{uc:}}
	local phrase = phrase.args[1]
	local debut = mw.ustring.sub(phrase,1,1)  --Extrait la première lettre de la phrase
	local fin = mw.ustring.sub(phrase,2)      --Extrait la fin de la phrase (sans la première lettre)
	fin = mw.ustring.lower (fin)		      --mets la fin en minuscules
	return mw.ustring.upper(debut)..fin -- Reconstruit la phrase en mettant la première lettre en majuscule et le reste en minuscule
end
function p.syntaxe(frame) -- mise en forme d'un texte
	local texte = frame.args[1]
	texte=mw.ustring.gsub(texte,"    "," ") -- 
	texte=mw.ustring.gsub(texte,"   "," ")  -- On supprime les espaces multiples
	texte=mw.ustring.gsub(texte,"  "," ")   -- 
	texte = mw.ustring.lower(texte)         -- On mets tout en minuscules
	local sortie, debut, fin = ""
    local positionp = mw.ustring.find(texte,".",1,true)
    local positionv = mw.ustring.find(texte,",",1,true)
    local position = #texte
    if positionp==nil then
    	texte = texte .. "."                 -- On ajoute le point final inexistant
    	positionp = mw.ustring.find(texte,".",1,true)
    end
    if positionv==nil then
    	positionv=#texte
    end
    position = math.min (positionp,positionv)
    local longueur = 0
    local majusc = true
    while position > 1 do
    	mw.log ("___cycle___")
		phrase = mw.ustring.sub (texte,1,position) -- suppression des blancs au début
		while mw.ustring.sub(phrase,1) == " " do
		phrase = mw.ustring.sub (phrase,2) --
		end
	    texte = mw.ustring.sub (texte,position+1)  --
    	mw.log ("phrase : ",phrase)
    	mw.log ("texte : ",texte)
    	phrase=mw.ustring.gsub(phrase," ,",",")   -- ceci semble fonctionner
    	mw.log ("phrase : ",phrase)
    	-- phrase=mw.ustring.gsub(phrase," .",".")   -- Pourquoi cela fonctionne-t-il mal ?
    	mw.log ("phrase : ",phrase)
    	debut = mw.ustring.sub (phrase,1,1)
		fin = mw.ustring.sub(phrase,2)      
		if (majusc) then
			phrase = mw.ustring.upper(debut)..fin -- On met la première lettre en majuscule
		else
			phrase = debut..fin
		end
		longueur=#phrase
		--while string.sub(phrase,longueur-1,1) == " " do
		--	phrase = string.sub(phrase,1,longueur-2) .. string.sub(phrase,longueur)-- suppression des espaces précédents
		--	longueur = #phrase
		--end
	    --while string.sub(texte,position) == " " do
	   	--texte = string.sub (texte,position+1)			-- et des suivants
	    --end
	    positionp = mw.ustring.find(texte,".",1,true) --
	    positionv = mw.ustring.find(texte,",",1,true) --
	    if positionp==nil then
	    	texte = texte .. "."                        -- On ajoute le point final inexistant
	    	positionp = mw.ustring.find(texte,".",1,true)
	    end
	    if positionv==nil then
	    	positionv=positionp+1		-- pour trouver positionp comme position
	    end
	    position = math.min (positionp,positionv)
	    if positionv == position then
	    	majusc=false
	    else
	    	majusc = true
	    end
	    mw.log(position,positionv,positionp)
		sortie = sortie .. phrase
	end
    return sortie
end
return p