« Module:Règle » : différence entre les versions
De Nefald
Autres actions
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)... » |
Aucun résumé des modifications |
||
| Ligne 2 : | Ligne 2 : | ||
function p.regle(frame) | 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 .. '">§ ' .. numero .. '</a>' | |||
.. '<span class="regle-texte">' .. texte_parse .. '</span>' | |||
.. '</div>' | |||
return frame:preprocess(html) | |||
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 .. '">§ ' .. numero .. '</a>'
.. '<span class="regle-texte">' .. texte_parse .. '</span>'
.. '</div>'
return frame:preprocess(html)
end
return p