Basculer le menu
Changer de menu des préférences
Basculer le menu personnel
Non connecté(e)
Votre adresse IP sera visible au public si vous faites des modifications.
Version datée du 11 novembre 2025 à 13:45 par Hiob (discussion | contributions) (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... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

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
Les témoins (''cookies'') nous aident à fournir nos services. En utilisant nos services, vous acceptez notre utilisation de témoins.