Module:Mainmodule
Documentation for this module may be created at Module:Mainmodule/doc
-- this is a test. Will be removed after.
local z = {}
local mw = require "Module:mw"
-- import an other module
local sub = require "Module:Mainmodulesub"
-- import an other module in a subpage
local ssub = require "Module:Mainmodule/sub"
-- fonction qui prend deux paramètres : la première et la deuxième partie du titre
-- on ajoute aussi les paramètres italique, gras et seul.
-- fin peut valoir nil s'il n'y en a pas
function z.genere(debut, fin, italique, gras, seul)
local deb = "..DISPLAYTITLE:"
local result = "{{DISPLAYTITLE:"
-- si italique on ajoute
if (italique ~= nil) then
deb = deb .. ".i." -- ajout de l'italique
result = result .. "<i>" -- ajout de l'italique
end
if (gras ~= nil) then
deb = deb .. ".b." -- ajout du gras
result = result .. "<b>" -- ajout du gras
end
-- ajout du titre
deb = deb .. debut
result = result .. debut
-- symétriquement on ferme les éléments
if (gras ~= nil) then
deb = deb .. "./b." -- fermeture du gras
result = result .. "</b>" -- fermeture du gras
end
if (italique ~= nil) then
deb = deb .. "./i." -- fermeture de l'italique
result = result .. "</i>" -- fermeture de l'italique
end
deb = deb .. "alors: "
if (seul == nil) then
deb = deb .. "seul=nil "
else
deb = deb .. "seul=" .. seul .. " "
end
if (fin == nil) then
deb = deb .. "fin=nil "
else
deb = deb .. "fin=" .. fin .. " "
end
-- si on a un 'fin' on l'ajoute
if (nil == seul) then
deb = deb .. "seul pas nil "
if (nil ~= fin) then
deb = deb .. "fin pas nil et vaut " .. fin
result = result .. " " .. fin
end
end
-- on ferme le DISPLAYTITLE
deb = deb .. ".."
result = result .. "}}"
return deb .. " " .. result
end
-- fonction principale (et unique). Paramètre à l'appel : aucun
function z.titre_mis_en_italique2(frame)
-- récupération des paramètres -> seulement ceux venant du modèle
local args = frame.args
-- les paramètres qui nous intéresse
local italique = args.italique
local gras = args.gras
local seul = args.seul
local deb = "debug: "
-- si aucun paramètre, on n'a rien à faire
if (nil == italique and nil == gras and nil == seul) then
return "" -- rien
end
-- on récupère le titre de l'article
local titre = frame:preprocess("{{PAGENAME}}")
-- on cherche la présence d'une "(" dans le titre
-- retourne la position dans le texte du premier "(" trouvé
local pos = string.find (titre, "(", 1, true)
-- si pos différent de nil on recupère les deux parties
local p1
local p2
if (pos ~= nil) then
-- on récupère la partie homonymie (à partir de 'pos', donc)
p2 = string.sub (titre, pos, -1)
-- on récupère le début (de 1 jusqu'à pos-1)
p1 = string.sub (titre, 1, pos-1)
-- il ne faut pas mettre les italiques sur l'espace terminal (avant la "(")
-- donc on enlève tout ce qui est "séparateur" de la fin de la chaîne
p1 = string.gsub (p1, "[%s]*$", "")
deb = deb .. "p1=" .. p1 .. ", p2=" .. p2 .. " "
else
-- sinon p1=titre, et p2=nil (rien)
p1 = titre
p2 = nil
deb = deb .. "p1=" .. p1 .. ", p2=NIL "
end
-- on retourne le résultat
return deb .. " " .. frame:preprocess( z.genere (p1, p2, italique, gras, seul))
end
function z.titre_mis_en_italique(frame)
-- récupération des paramètres -> on n'a pas de paramètre
-- on récupère le titre de l'article
local titre = frame:preprocess("{{PAGENAME}}")
-- on cherche la présence d'une "(" dans le titre
-- retourne la position dans le texte du premier "(" trouvé
local pos = string.find (titre, "(", 1, true)
-- si 'nil' il n'y a pas de ( -> tout le titre en italique
if (nil == pos) then
return frame:preprocess("{{DISPLAYTITLE:<i>" .. titre .. "</i>}}")
end
-- on récupère la partie homonymie (à partir de 'pos', donc)
local p2 = string.sub (titre, pos, -1)
-- on récupère le début (de 1 jusqu'à pos-1)
local p1 = string.sub (titre, 1, pos-1)
-- il ne faut pas mettre les italiques sur l'espace terminal (avant la "(")
-- donc on enlève tout ce qui est "séparateur" de la fin de la chaîne
p1 = string.gsub (p1, "[%s]*$", "")
-- on retourne la première partie en italique, la deuxième normal, dans DISPLAYTITLE
return frame:preprocess("{{DISPLAYTITLE:<i>" .. p1 .. "</i> " .. p2 .. "}}")
end
function z.generate(frame)
local result = ""
result = "Output from test module 3:<br/>"
result = result .. "This is from Mainmodule:generate()<br/>"
-- use the module
result = result .. sub.fromsub1()
result = result .. sub.fromsub2()
-- use the module from subpage
result = result .. ssub.fromsub1()
result = result .. ssub.fromsub2()
return result
end
return z