Mudanças entre as edições de "Módulo:Gb"

De Wiki Gla
Ir para navegação Ir para pesquisar
Linha 4: Linha 4:
     local args = frame.args
     local args = frame.args


    -- Parâmetros principais
     local imagem = args.imagem or ""
     local imagem       = args.imagem or ""
     local titulo = args.titulo or "Título"
     local titulo       = args.titulo or "Título"
     local botao = args.botao or "Ler agora"
     local botao         = args.botao or "Ler agora"
     local link   = args.link or "#"
     local link         = args.link or "#"


    -- Parâmetros opcionais
     -- Container
    local largura      = args.largura or "216px"
    local altura        = args.altura or "292px"
    local fundoPadrao  = args.fundo or "#111"
    local corBotao      = args.corBotao or "#1f8b4c"
    local corTextoBotao = args.corTextoBotao or "#eafff3"
    local fonte        = args.fonte or "Inter,Segoe UI,Roboto,Arial,sans-serif"
 
    -- Verifica se a imagem existe
    local imagemUrl = ""
    if imagem ~= "" then
        local status, fileTitle = pcall(mw.title.makeTitle, "File", imagem)
        if status and fileTitle and fileTitle.exists then
            imagemUrl = fileTitle:fullUrl()
        end
    end
 
     -- Container do card
     local html = mw.html.create("div")
     local html = mw.html.create("div")
         :css("position", "relative")
         :css("position", "relative")
         :css("width", largura)
         :css("width", "216px")
         :css("height", altura)
         :css("height", "292px")
         :css("border-radius", "14px")
         :css("border-radius", "14px")
         :css("overflow", "hidden")
         :css("overflow", "hidden")
         :css("font-family", fonte)
         :css("font-family", "Arial, sans-serif")
         :css("color", "#fff")
         :css("color", "#fff")
         :css("box-shadow", "0 6px 18px rgba(0,0,0,.35)")
         :css("box-shadow", "0 6px 18px rgba(0,0,0,.35)")
         :css("background", imagemUrl ~= "" and ("url(" .. imagemUrl .. ") center/cover no-repeat " .. fundoPadrao) or fundoPadrao)
         :css("background", imagem ~= "" and ("url(" .. imagem .. ") center/cover no-repeat #111") or "#111")


     -- Título do card
     -- Título
     html:tag("div")
     html:tag("div")
         :css("position", "absolute")
         :css("position", "absolute")
Linha 59: Linha 41:
         :css("text-align", "center")
         :css("text-align", "center")
         :css("padding", "10px 12px")
         :css("padding", "10px 12px")
         :css("background", corBotao)
         :css("background", "#1f8b4c")
         :css("color", corTextoBotao)
         :css("color", "#eafff3")
         :css("font-weight", "800")
         :css("font-weight", "800")
         :css("font-size", "14px")
         :css("font-size", "14px")

Edição das 04h34min de 27 de agosto de 2025

A documentação para este módulo pode ser criada em Módulo:Gb/doc

local p = {}

function p.render(frame)
    local args = frame.args

    local imagem = args.imagem or ""
    local titulo = args.titulo or "Título"
    local botao  = args.botao or "Ler agora"
    local link   = args.link or "#"

    -- Container
    local html = mw.html.create("div")
        :css("position", "relative")
        :css("width", "216px")
        :css("height", "292px")
        :css("border-radius", "14px")
        :css("overflow", "hidden")
        :css("font-family", "Arial, sans-serif")
        :css("color", "#fff")
        :css("box-shadow", "0 6px 18px rgba(0,0,0,.35)")
        :css("background", imagem ~= "" and ("url(" .. imagem .. ") center/cover no-repeat #111") or "#111")

    -- Título
    html:tag("div")
        :css("position", "absolute")
        :css("left", "12px")
        :css("right", "12px")
        :css("bottom", "70px")
        :css("font-size", "16px")
        :css("font-weight", "800")
        :wikitext(titulo)

    -- Botão
    html:tag("a")
        :attr("href", link)
        :css("position", "absolute")
        :css("left", "12px")
        :css("right", "12px")
        :css("bottom", "14px")
        :css("display", "block")
        :css("text-align", "center")
        :css("padding", "10px 12px")
        :css("background", "#1f8b4c")
        :css("color", "#eafff3")
        :css("font-weight", "800")
        :css("font-size", "14px")
        :css("text-decoration", "none")
        :css("border-radius", "10px")
        :tag("span")
        :wikitext(botao)

    return tostring(html)
end

return p