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
Ligne 2 : Ligne 2 :


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


    -- Détection du niveau selon le nombre de points
-- Détection du niveau
    local _, points = string.gsub(numero, "%.", "")
local _, points = string.gsub(numero, "%.", "")
    local niveau = points + 1
local niveau = math.min(points + 1, 3)
    -- niveau 1 = "1"      (section)
    -- niveau 2 = "1.1"    (sous-section)
    -- niveau 3 = "1.1.1"  (article)


    niveau = math.min(niveau, 3)
-- Ancre
local ancre = "r-" .. string.gsub(numero, "%.", "-")


    -- Ancre propre : remplace les points par des tirets
-- Parse le texte (gère les templates imbriqués)
    local ancre = "r-" .. string.gsub(numero, "%.", "-")
local texte_parse = frame:preprocess(texte)


    -- Construction HTML
-- Retour via un tag <div> parsé par MediaWiki
    local div = mw.html.create("div")
-- On utilise frame:preprocess sur du wikitext contenant du HTML
    div:addClass("regle-item")
local html = '<div class="regle-item regle-niveau-' .. niveau .. '" id="' .. ancre .. '">'
      :addClass("regle-niveau-" .. niveau)
          .. '<a class="regle-numero" href="#' .. ancre .. '">§&#160;' .. numero .. '</a>'
      :attr("id", ancre)
          .. '<span class="regle-texte">' .. texte_parse .. '</span>'
          .. '</div>'


    -- Lien auto-référent sur le numéro
return frame:preprocess(html)
    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
end


return p
return p

Version du 22 février 2026 à 11:42

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
local _, points = string.gsub(numero, "%.", "")
local niveau = math.min(points + 1, 3)

-- Ancre
local ancre = "r-" .. string.gsub(numero, "%.", "-")

-- Parse le texte (gère les templates imbriqués)
local texte_parse = frame:preprocess(texte)

-- Retour via un tag <div> parsé par MediaWiki
-- On utilise frame:preprocess sur du wikitext contenant du HTML
local html = '<div class="regle-item regle-niveau-' .. niveau .. '" id="' .. ancre .. '">'
          .. '<a class="regle-numero" href="#' .. ancre .. '">§&#160;' .. numero .. '</a>'
          .. '<span class="regle-texte">' .. texte_parse .. '</span>'
          .. '</div>'

return frame:preprocess(html)
end

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