Module:Règle
De Nefald
Autres actions
La documentation pour ce module peut être créée à Module:Règle/doc
local p = {}
function p.regle(frame)
local args = frame:getParent().args
local numero = mw.text.trim(args[1] or "")
local texte = mw.text.trim(args[2] or "")
if numero == "" then return "" end
-- Détection du niveau selon le nombre de points
local _, points = string.gsub(numero, "%.", "")
local niveau = points + 1
-- niveau 1 = "1" (section)
-- niveau 2 = "1.1" (sous-section)
-- niveau 3 = "1.1.1" (article)
niveau = math.min(niveau, 3)
-- Ancre propre : remplace les points par des tirets
local ancre = "r-" .. string.gsub(numero, "%.", "-")
-- Construction HTML
local div = mw.html.create("div")
div:addClass("regle-item")
:addClass("regle-niveau-" .. niveau)
:attr("id", ancre)
-- Lien auto-référent sur le numéro
div:tag("a")
:addClass("regle-numero")
:attr("href", "#" .. ancre)
:wikitext("§\u{00A0}" .. numero)
:done()
div:tag("span")
:addClass("regle-texte")
:wikitext(texte)
:done()
return tostring(div)
end
return p