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.

« Module:MiniCard » : différence entre les versions

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