Module:Correction syntaxique
Utilisation
Fonctions exportables :
verifierLesArguments(frame)
– vérifie l'existence des arguments passés à un modèle
Exemple
En plaçant dans la source d'un modèle le code suivant, chaque appel du modèle va vérifier la présence d'arguments autres que nom, prenom et age :
((#invoke: Correction syntaxique | verifierLesArguments | nom = | prenom = | age = ))
Si d'autres arguments sont présents, alors :
- du code caché sera écrit dans la page (visible en consultant la source HTML de la page, ou en affichant via CSS ou JavaScript les éléments
.erreur_syntaxe_modele
) - et la page sera ajoutée dans la catégorie cachée Page appelant un modèle avec un paramètre inconnu.
Configuration
Il est possible de spécifier la catégorie à remplir en ajoutant un paramètre _catégorie
:
((#invoke: Correction syntaxique | verifierLesArguments | nom = | prenom = | age = | _catégorie = Catégorie:Modèle Foobar avec un paramètre inconnu ))
(la saisie du namespace Catégorie:
peut être omise)
Semble remplir la même fonction que Module:Check for unknown parameters.
Voir les statistiques d'utilisation du module sur l'outil wstat.
La documentation de ce module est générée par le modèle ((Documentation module)).
Elle est incluse depuis sa sous-page de documentation. Veuillez placer les catégories sur cette page-là.
Les éditeurs peuvent travailler dans le bac à sable (créer).
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 i, 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
Text is available under the CC BY-SA 4.0 license; additional terms may apply.
Images, videos and audio are available under their respective licenses.