Module:Méta palette
Aller à la navigation
Aller à la recherche
La documentation pour ce module peut être créée à Module:Méta palette/doc
--[[ Fonctions utiles pour les méta-palettes de navigation. ]] local p = {} --[[ Nettoyage d'une chaîne. Argument: lien reçu du #invoke Résultat: l'argument, avec les diverses espaces HTML remplacés par des espaces normales Ce code est utile, par exemple avec lien = "Culture_en Égypte". Si on ne le fait pas, les résultats ne seront pas les résultats attendus. ]] local function nettoyage(chaine) if type(chaine) ~= "string" then return chaine end return chaine -- nbsp :gsub( '\194\160', ' ' ) :gsub( ' ', ' ' ) :gsub( ' ', ' ' ) -- narrow nbsp :gsub( '\226\128\175', ' ' ) :gsub( ' ', ' ' ) -- thin space :gsub( '\226\128\137', ' ' ) :gsub( ' ', ' ' ) :gsub( ' ', ' ' ) -- simple space :gsub( ' ', ' ' ) -- underscore :gsub( '_', ' ' ) end --[[ Formate un lien interne. Paramètres: lien: lien de l'article désiré texte: texte à afficher Cette fonction formate un lien interne, en utilisant comme cible du lien la valeur du premier paramètre et comme texte affiché la valeur du second paramètre. Si le modèle contenant le #invoke avait été appelé avec un paramètre portant le même nom que la valeur du premier paramètre passé au module, alors le module utilisera la valeur du paramètre du modèle comme cible du lien, ce qui permet de détourner le lien. Par exemple, si le modèle contient {{#invoke:Méta palette|lien|cible-1|texte-1}} et que le modèle est appelé avec {{Modèle}} alors le lien généré sera cible-1|texte-1 (entre crochets) Mais si le même modèle est appelé avec {{Modèle|cible-1=toto}} alors le lien généré sera toto|texte-1 (entre crochets) ]] function p.lien(frame) local args0 = frame.args -- arguments du #invoke local args1 = frame:getParent().args -- arguments du modèle appelant -- Le modèle appelant (la méta palette) génère automatiquement la cible du lien -- en assemblant divers éléments. local lienMeta = mw.text.trim(args0[1]) -- cible générée par la meta palette -- Si la palette appelant la méta palette lui passe un argument dont le nom est -- identique à celui du lien généré par la méta palette, utiliser la valeur de -- cet argument comme cible du lien. local lien1 = args1[lienMeta] -- cible détournée par la palette if lien1 then return "[[" .. lien1 .. "|" .. args0[2] .. "]]" end -- Le lien généré par la méta palette peut contenir des blancs soulignés, -- ou des espaces insécables, il faut donc nettoyer le lien généré avant -- de voir si la palette n'a pas utilisé un nom de paramètre nettoyé. local lien2 = args1[nettoyage(lienMeta)] -- cible détournée par la palette if lien2 then return "[[" .. lien2 .. "|" .. args0[2] .. "]]" end return "[[" .. lienMeta .. "|" .. args0[2] .. "]]" end return p