Módulo:Gb
Revisão de 04h28min de 27 de agosto de 2025 por GhoulBlack (discussão | contribs)
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
-- Parâmetros principais
local imagem = args.imagem or ""
local titulo = args.titulo or "Título"
local botao = args.botao or "Ler agora"
local link = args.link or "#"
-- Parâmetros opcionais
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")
:css("position", "relative")
:css("width", largura)
:css("height", altura)
:css("border-radius", "14px")
:css("overflow", "hidden")
:css("font-family", fonte)
:css("color", "#fff")
:css("box-shadow", "0 6px 18px rgba(0,0,0,.35)")
:css("background", imagemUrl ~= "" and ("url(" .. imagemUrl .. ") center/cover no-repeat " .. fundoPadrao) or fundoPadrao)
-- Título do card
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", corBotao)
:css("color", corTextoBotao)
: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