Mudanças entre as edições de "Módulo:Teste"
Ir para navegação
Ir para pesquisar
(Limpou toda a página) Etiqueta: anulando |
Etiqueta: Revertido |
||
| Linha 1: | Linha 1: | ||
-- Módulo:Achiev | |||
local p = {} | |||
function p.render(frame) | |||
local args = frame:getParent().args or {} | |||
local imagem = args.imagem or "Blank" | |||
local titulo = args.titulo or "Título da Conquista" | |||
local descricao = args.descricao or "Descrição da conquista." | |||
local itensStr = args.itens or "" | |||
local html = mw.html.create("div") | |||
:addClass("conquista-box") | |||
-- Ícone + Título + Descrição (igual ao antes) | |||
html:tag("div") | |||
:addClass("conquista-icon") | |||
:wikitext(string.format("[[Arquivo:%s.png|82px|link=]]", imagem)) | |||
:done() | |||
local conteudo = html:tag("div") | |||
:addClass("conquista-conteudo") | |||
conteudo:tag("div") | |||
:addClass("conquista-titulo") | |||
:wikitext(titulo) | |||
:done() | |||
conteudo:tag("div") | |||
:addClass("conquista-descricao") | |||
:wikitext(descricao) | |||
:done() | |||
-- Recompensas dinâmicas | |||
local rec = conteudo:tag("div") | |||
:addClass("conquista-recompensas") | |||
-- Se tiver itens, separa por vírgula | |||
for entry in mw.text.gsplit(itensStr, ",", true) do | |||
local e = mw.text.trim(entry) | |||
if e ~= "" then | |||
-- cada entry é "NomeDoItem:Quantidade" | |||
local name, qty = e:match("^%s*(.-)%s*:%s*(%d+)%s*$") | |||
if name and qty then | |||
-- bloco .item | |||
rec:tag("div") | |||
:addClass("item") | |||
:wikitext(string.format( | |||
"[[Arquivo:%s.png|32x32px|class=item-img|link=]]", | |||
name | |||
)) | |||
:done() | |||
rec:tag("span") | |||
:addClass("item-qtd") | |||
:wikitext("x" .. qty) | |||
:done() | |||
end | |||
end | |||
end | |||
return tostring(html) | |||
end | |||
return p | |||
Edição das 13h18min de 7 de junho de 2025
A documentação para este módulo pode ser criada em Módulo:Teste/doc
-- Módulo:Achiev
local p = {}
function p.render(frame)
local args = frame:getParent().args or {}
local imagem = args.imagem or "Blank"
local titulo = args.titulo or "Título da Conquista"
local descricao = args.descricao or "Descrição da conquista."
local itensStr = args.itens or ""
local html = mw.html.create("div")
:addClass("conquista-box")
-- Ícone + Título + Descrição (igual ao antes)
html:tag("div")
:addClass("conquista-icon")
:wikitext(string.format("[[Arquivo:%s.png|82px|link=]]", imagem))
:done()
local conteudo = html:tag("div")
:addClass("conquista-conteudo")
conteudo:tag("div")
:addClass("conquista-titulo")
:wikitext(titulo)
:done()
conteudo:tag("div")
:addClass("conquista-descricao")
:wikitext(descricao)
:done()
-- Recompensas dinâmicas
local rec = conteudo:tag("div")
:addClass("conquista-recompensas")
-- Se tiver itens, separa por vírgula
for entry in mw.text.gsplit(itensStr, ",", true) do
local e = mw.text.trim(entry)
if e ~= "" then
-- cada entry é "NomeDoItem:Quantidade"
local name, qty = e:match("^%s*(.-)%s*:%s*(%d+)%s*$")
if name and qty then
-- bloco .item
rec:tag("div")
:addClass("item")
:wikitext(string.format(
"[[Arquivo:%s.png|32x32px|class=item-img|link=]]",
name
))
:done()
rec:tag("span")
:addClass("item-qtd")
:wikitext("x" .. qty)
:done()
end
end
end
return tostring(html)
end
return p