Module:Icône
Ce module implémente le modèle {{Icône}}.
Utilisation
Fonctions exportables :
icons_table()
– génère un tableau des icônes disponibles, utile uniquement pour la documentation du modèle {{Icône}} ;icon(frame)
– voir la documentation du modèle {{Icône}}.
Autres fonctions :
- les fonctions ci-dessus avec un « _ » avant le nom peuvent être appelées directement depuis lua, avec les paramètres dans une table.
Pour ajouter une icône, voir Module:Icône/Données
local p = {}
local DATA_MODULE = "Module:Icône/Données"
-- Génère un tableau contenant tous les icônes (pour la documentation)
function p.icons_table()
icons = mw.loadData(DATA_MODULE)
local icons_table = '{| class="wikitable"\n!Icône!!Infobulle!!Code\n'
names = {}
for k in pairs(icons) do
table.insert(names, k)
end
table.sort(names)
local icon, row
for k, name in ipairs(names) do
icon = icons[name]
icons_table = icons_table .. string.format(
"|-\n|[[Fichier:%s|link=|18x18px|alt=]]||%s||<code><nowiki>{{icône|%s}}</nowiki></code>\n",
icon.image,
icon.tooltip or "",
name
)
end
return icons_table .. "|}"
end
-- Génère l'icône identifiée par son nom
function p._icon(args)
name = args[1]
if name == nil then
error("Paramètre 1 obligatoire")
end
data = mw.loadData(DATA_MODULE)
data = data[name:lower()]
if data == nil then
error(string.format("Icône inconnue : %s"))
end
tooltip = args["infobulle"] or data.tooltip
return string.format(
"[[Fichier:%s%s|link=%s|%s|class=icon noviewer|alt=%s]]",
data.image,
tooltip and '|' .. tooltip or '',
args["lien"] or "",
args["taille"] or data.size or "18x18px",
args["alt"] or data.alt or ""
)
end
-- Fonction générant une icône appelée par un modèle
function p.icon(frame)
local args = {}
local argsParent = frame:getParent().args
for cle, val in pairs(argsParent) do
if val then
args[cle] = mw.text.trim(val)
end
end
return p._icon(args)
end
return p