Basculer le menu
Changer de menu des préférences
Basculer le menu personnel
Non connecté(e)
Votre adresse IP sera visible au public si vous faites des modifications.

« Module:Règle » : différence entre les versions

De Nefald
Hiob (discussion | contributions)
Page créée avec « 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)... »
 
Hiob (discussion | contributions)
Aucun résumé des modifications
 
(6 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
local p = {}
local p = {}
local function makeAncre(numero)
return "r-" .. string.gsub(numero, "%.", "-")
end


function p.regle(frame)
function p.regle(frame)
    local args  = frame:getParent().args
local args  = frame:getParent().args
    local numero = mw.text.trim(args[1] or "")
local numero = mw.text.trim(args[1] or "")
    local texte  = mw.text.trim(args[2] or "")
local texte  = mw.text.trim(args[2] or "")
 
if numero == "" then return "" end


    if numero == "" then return "" end
local _, points = string.gsub(numero, "%.", "")
local niveau = math.min(points + 1, 3)
local ancre = makeAncre(numero)


    -- Détection du niveau selon le nombre de points
local lien = '[[#' .. ancre .. '|§ ' .. numero .. ']]'
    local _, points = string.gsub(numero, "%.", "")
local sortie = '<span id="' .. ancre .. '"></span>' .. lien .. ' ' .. texte
    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)
return frame:preprocess(sortie)
end


    -- Ancre propre : remplace les points par des tirets
function p.rref(frame)
    local ancre = "r-" .. string.gsub(numero, "%.", "-")
local args  = frame:getParent().args
local numero = mw.text.trim(args[1] or "")
local page  = mw.text.trim(args["page"] or "")


    -- Construction HTML
if numero == "" then return "" end
    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
local ancre = makeAncre(numero)
    div:tag("a")
local label = '§&nbsp;' .. numero
      :addClass("regle-numero")
      :attr("href", "#" .. ancre)
      :wikitext("§\u{00A0}" .. numero)
      :done()


    div:tag("span")
local lien
      :addClass("regle-texte")
if page ~= "" then
      :wikitext(texte)
-- Lien vers une autre page
      :done()
lien = '[[' .. page .. '#' .. ancre .. '|' .. label .. ']]'
else
-- Lien vers la page courante
lien = '[[#' .. ancre .. '|' .. label .. ']]'
end


    return tostring(div)
return frame:preprocess(lien)
end
end


return p
return p

Dernière version du 22 février 2026 à 13:33

La documentation pour ce module peut être créée à Module:Règle/doc

local p = {}

local function makeAncre(numero)
return "r-" .. string.gsub(numero, "%.", "-")
end

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

local _, points = string.gsub(numero, "%.", "")
local niveau = math.min(points + 1, 3)
local ancre = makeAncre(numero)

local lien = '[[#' .. ancre .. '|§&nbsp;' .. numero .. ']]'
local sortie = '<span id="' .. ancre .. '"></span>' .. lien .. ' ' .. texte

return frame:preprocess(sortie)
end

function p.rref(frame)
local args   = frame:getParent().args
local numero = mw.text.trim(args[1] or "")
local page   = mw.text.trim(args["page"] or "")

if numero == "" then return "" end

local ancre = makeAncre(numero)
local label = '§&nbsp;' .. numero

local lien
if page ~= "" then
-- Lien vers une autre page
lien = '[[' .. page .. '#' .. ancre .. '|' .. label .. ']]'
else
-- Lien vers la page courante
lien = '[[#' .. ancre .. '|' .. label .. ']]'
end

return frame:preprocess(lien)
end

return p
Les témoins (''cookies'') nous aident à fournir nos services. En utilisant nos services, vous acceptez notre utilisation de témoins.