Mudanças entre as edições de "Módulo:Gb"
Ir para navegação
Ir para pesquisar
| Linha 2: | Linha 2: | ||
function p.render(frame) | function p.render(frame) | ||
local args = frame.args | |||
local args = | |||
local imagem = args.imagem or "" | -- Parâmetros básicos | ||
local titulo = args.titulo or "Título" | local imagem = args.imagem or "" | ||
local botao | local titulo = args.titulo or "Título" | ||
local link | 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" | |||
-- Monta URL da imagem (se existir) | |||
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 principal | |||
local html = mw.html.create("div") | local html = mw.html.create("div") | ||
:css("position", "relative") | :css("position", "relative") | ||
:css("width", | :css("width", largura) | ||
:css("height", | :css("height", altura) | ||
:css("border-radius", "14px") | :css("border-radius", "14px") | ||
:css("overflow", "hidden") | :css("overflow", "hidden") | ||
:css("font-family", | :css("font-family", fonte) | ||
: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", | :css("background", imagemUrl ~= "" and ("url(" .. imagemUrl .. ") center/cover no-repeat " .. fundoPadrao) or fundoPadrao) | ||
-- Título | -- Título | ||
| Linha 42: | Linha 59: | ||
:css("text-align", "center") | :css("text-align", "center") | ||
:css("padding", "10px 12px") | :css("padding", "10px 12px") | ||
:css("background", | :css("background", corBotao) | ||
:css("color", | :css("color", corTextoBotao) | ||
:css("font-weight", "800") | :css("font-weight", "800") | ||
:css("font-size", "14px") | :css("font-size", "14px") | ||
:css("text-decoration", "none") | :css("text-decoration", "none") | ||
:css("border-radius", "10px") | :css("border-radius", "10px") | ||
: | :tag("span") | ||
:wikitext(botao) | |||
return tostring(html) | return tostring(html) | ||
Edição das 04h26min 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 básicos
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"
-- Monta URL da imagem (se existir)
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 principal
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
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