Module:Correction syntaxique

 Documentation

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.

local p = {}local function sanitize(text)return mw.text.nowiki(tostring(text):gsub('\n', ' ↲ '))endlocal function _verif(passed_args, modele_args, cat)local rv = ""local nombre = 0for a,b in pairs(passed_args) doif (modele_args[a] == nil and b ~= "") thennombre = nombre + 1rv = 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>"endendif (nombre > 0) thenlocal categorieif (cat) and (cat ~= "") thencategorie = tostring(mw.title.new(cat, "Catégorie"))elsecategorie = "Catégorie:Page appelant un modèle avec un paramètre inconnu"endif (nombre > 10) thenrv = rv .. "[[" .. categorie .. "|+]]"elserv = rv .. "[[" .. categorie .. "]]"endendreturn rvendfunction p.verif( passed_args, modele_args_list, cat )local modele_args = {}for i, v in ipairs( modele_args_list ) doif tonumber( v ) thenmodele_args[ tonumber( v ) ] = trueelsemodele_args[ v ] = trueendendreturn _verif( passed_args, modele_args, cat )endfunction p.verifierLesArguments(frame)local passed_args = frame:getParent().argslocal modele_args = frame.argslocal cat = modele_args["_catégorie"]return _verif(passed_args, modele_args, cat)endreturn p