Mudanças entre as edições de "Módulo:Gb"
Ir para navegação
Ir para pesquisar
| Linha 4: | Linha 4: | ||
local args = frame.args | local args = frame.args | ||
-- Parâmetros | -- Parâmetros principais | ||
local imagem | local imagem = args.imagem or "" | ||
local titulo | local titulo = args.titulo or "Título" | ||
local botao | local botao = args.botao or "Ler agora" | ||
local link | local link = args.link or "#" | ||
-- Parâmetros opcionais | -- Parâmetros opcionais | ||
local largura | local largura = args.largura or "216px" | ||
local altura | local altura = args.altura or "292px" | ||
local fundoPadrao = args.fundo or "#111" | local fundoPadrao = args.fundo or "#111" | ||
local corBotao | local corBotao = args.corBotao or "#1f8b4c" | ||
local corTextoBotao = args.corTextoBotao or "#eafff3" | local corTextoBotao = args.corTextoBotao or "#eafff3" | ||
local fonte | local fonte = args.fonte or "Inter,Segoe UI,Roboto,Arial,sans-serif" | ||
-- | -- Verifica se a imagem existe | ||
local imagemUrl = "" | local imagemUrl = "" | ||
if imagem ~= "" then | if imagem ~= "" then | ||
| Linha 27: | Linha 27: | ||
end | end | ||
-- Container | -- Container do card | ||
local html = mw.html.create("div") | local html = mw.html.create("div") | ||
:css("position", "relative") | :css("position", "relative") | ||
| Linha 39: | Linha 39: | ||
:css("background", imagemUrl ~= "" and ("url(" .. imagemUrl .. ") center/cover no-repeat " .. fundoPadrao) or fundoPadrao) | :css("background", imagemUrl ~= "" and ("url(" .. imagemUrl .. ") center/cover no-repeat " .. fundoPadrao) or fundoPadrao) | ||
-- Título | -- Título do card | ||
html:tag("div") | html:tag("div") | ||
:css("position", "absolute") | :css("position", "absolute") | ||
Edição das 04h28min 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
-- 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