Aller au contenu

« Module:Correction syntaxique » : différence entre les versions

De Wreck
Modèle:Infobox_Musique_(œuvre)>Zebulon84
appel depuis lua avec une liste de nom de paramètre { 'param1', 'param2' }, plutôt qu'avec une table { param1=true, param2=true }
m 3 versions importées
 
(12 versions intermédiaires par 3 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
-- luacheck: globals mw
local p = {}
local p = {}
local function sanitize(text)
return mw.text.nowiki(tostring(text):gsub('\n', ' ↲ '))
end


local function _verif(passed_args, modele_args, cat)
local function _verif(passed_args, modele_args, cat)
    local rv = ""
local rv = ""
    local nombre = 0
local nombre = 0
    for a,b in pairs(passed_args) do
for a,b in pairs(passed_args) do
        if (modele_args[a] == nil and b ~= "") then
if (modele_args[a] == nil and b ~= "") then
            nombre = nombre + 1
nombre = nombre + 1
            rv = rv .. '<div class="erreur_syntaxe_modele" style="display:none">' .. "L'argument " .. mw.text.nowiki(a) .. " (valeur " .. mw.text.nowiki(b) .. ") n'existe pas dans le modèle appelé</div>"
rv = rv ..
        end
'<span class="erreur_syntaxe_modele" style="display:none">L’argument ' ..
    end
sanitize(a) ..
    if (nombre > 0) then
" (valeur " ..
        local categorie
sanitize(b) ..
        if (cat) and (cat ~= "") then
") n’existe pas dans le modèle appelé</span>"
            categorie = tostring(mw.title.new(cat, "Catégorie"))
end
        else
end
            categorie = "Catégorie:Page appelant un modèle avec un paramètre inconnu"
if (nombre > 0) then
        end
local categorie
        if (nombre > 10) then
if (cat) and (cat ~= "") then
            rv = rv .. "[[" .. categorie .. "|+]]"
categorie = tostring(mw.title.new(cat, "Catégorie"))
        else
else
            rv = rv .. "[[" .. categorie .. "]]"
categorie = "Catégorie:Page appelant un modèle avec un paramètre inconnu"
        end
end
    end
if (nombre > 10) then
    return rv
rv = rv .. "[[" .. categorie .. "|+]]"
else
rv = rv .. "[[" .. categorie .. "]]"
end
end
return rv
end
end


function p.verif( passed_args, modele_args_list, cat )
function p.verif( passed_args, modele_args_list, cat )
modele_args = {}
local modele_args = {}
for i, v in ipairs( modele_args_list ) do
for _, v in ipairs( modele_args_list ) do
if tonumber( v ) then
if tonumber( v ) then
modele_args[ tonumber( v ) ] = true
modele_args[ tonumber( v ) ] = true
Ligne 39 : Ligne 50 :


function p.verifierLesArguments(frame)
function p.verifierLesArguments(frame)
    local passed_args = frame:getParent().args
local passed_args = frame:getParent().args
    local modele_args = frame.args
local modele_args = frame.args
    local cat = modele_args["_catégorie"]
local cat = modele_args["_catégorie"]
    return _verif(passed_args, modele_args, cat)
return _verif(passed_args, modele_args, cat)
end
end


return p
return p

Dernière version du 23 février 2026 à 23:18

La documentation pour ce module peut être créée à Module:Correction syntaxique/doc

-- luacheck: globals mw

local p = {}

local function sanitize(text)
	return mw.text.nowiki(tostring(text):gsub('\n', ' ↲ '))
end

local function _verif(passed_args, modele_args, cat)
	local rv = ""
	local nombre = 0
	for a,b in pairs(passed_args) do
		if (modele_args[a] == nil and b ~= "") then
			nombre = nombre + 1
			rv = rv ..
				'<span class="erreur_syntaxe_modele" style="display:none">L’argument ' ..
				sanitize(a) ..
				" (valeur " ..
				sanitize(b) ..
				") n’existe pas dans le modèle appelé</span>"
		end
	end
	if (nombre > 0) then
		local categorie
		if (cat) and (cat ~= "") then
			categorie = tostring(mw.title.new(cat, "Catégorie"))
		else
			categorie = "Catégorie:Page appelant un modèle avec un paramètre inconnu"
		end
		if (nombre > 10) then
			rv = rv .. "[[" .. categorie .. "|+]]"
		else
			rv = rv .. "[[" .. categorie .. "]]"
		end
	end
	return rv
end

function p.verif( passed_args, modele_args_list, cat )
	local modele_args = {}
	for _, v in ipairs( modele_args_list ) do
		if tonumber( v ) then
			modele_args[ tonumber( v ) ] = true
		else
			modele_args[ v ] = true
		end
	end
	return _verif( passed_args, modele_args, cat )
end

function p.verifierLesArguments(frame)
	local passed_args = frame:getParent().args
	local modele_args = frame.args
	local cat = modele_args["_catégorie"]
	return _verif(passed_args, modele_args, cat)
end

return p