« Module:MiniCard » : différence entre les versions
De Nefald
Autres actions
Page créée avec « local p = {} function p.main(frame) local args = frame:getParent().args local link = mw.text.trim(args.link or "") local text = mw.text.trim(args.text or "") local image = mw.text.trim(args.image or "") -- Charger le CSS local css = frame:extensionTag('templatestyles', '', {src='Modèle:MiniCard/styles.css'}) -- Si pas de texte, utiliser le lien comme texte if text == "" and link ~= "" then text = link end... » |
(Aucune différence)
|
Version du 11 novembre 2025 à 13:45
La documentation pour ce module peut être créée à Module:MiniCard/doc
local p = {}
function p.main(frame)
local args = frame:getParent().args
local link = mw.text.trim(args.link or "")
local text = mw.text.trim(args.text or "")
local image = mw.text.trim(args.image or "")
-- Charger le CSS
local css = frame:extensionTag('templatestyles', '', {src='Modèle:MiniCard/styles.css'})
-- Si pas de texte, utiliser le lien comme texte
if text == "" and link ~= "" then
text = link
end
-- Détection lien externe
local isExternal = link:match("^https?://") or link:match("^//")
-- Construction de la card (HTML)
local card = mw.html.create('span'):addClass('minicard')
-- Ajouter classe si pas d'image
if image == "" then
card:addClass('minicard--no-image')
else
-- Background avec image
local bg = card:tag('span'):addClass('minicard-background')
-- Image sans lien (important: link= vide)
bg:wikitext('[[Fichier:' .. image .. '|link=|60px]]')
-- Overlay
bg:tag('span'):addClass('minicard-overlay')
end
-- Texte
card:tag('span'):addClass('minicard-text'):wikitext(text)
-- Wrapper avec lien
if link ~= "" then
local wrapper = mw.html.create('a')
:addClass('minicard-wrapper')
if isExternal then
wrapper:attr('href', link)
:attr('target', '_blank')
:attr('rel', 'noopener noreferrer')
:addClass('external')
else
-- Lien interne : construire l'URL
local title = mw.title.new(link)
if title then
wrapper:attr('href', title:fullUrl())
else
wrapper:attr('href', '#')
end
end
wrapper:node(card)
return css .. tostring(wrapper)
else
-- Pas de lien
return css .. tostring(card)
end
end
return p