Mudanças entre as edições de "Módulo:Teste"
Ir para navegação
Ir para pesquisar
Etiqueta: Revertido |
Etiqueta: Revertido |
||
| Linha 1: | Linha 1: | ||
-- Módulo:Achiev | -- Módulo:Achiev (corrigido para badge dentro do .item) | ||
local p = {} | local p = {} | ||
function p.render(frame) | function p.render(frame) | ||
local args = frame:getParent().args or {} | local args = frame:getParent().args or {} | ||
local imagem = args.imagem or "Blank" | |||
local imagem | local titulo = args.titulo or "Título da Conquista" | ||
local titulo | local descricao= args.descricao or "Descrição da conquista." | ||
local descricao = args.descricao or "Descrição da conquista." | local itensStr = args.itens or "" | ||
local itensStr | |||
local html = mw.html.create("div") | local html = mw.html.create("div") | ||
:addClass("conquista-box") | :addClass("conquista-box") | ||
-- Ícone | -- Ícone | ||
html:tag("div") | html:tag("div") | ||
:addClass("conquista-icon") | :addClass("conquista-icon") | ||
:wikitext(string.format("[[Arquivo:%s.png|82px|link=]]", imagem)) | :wikitext(string.format( | ||
"[[Arquivo:%s.png|82px|link=]]", | |||
imagem | |||
)) | |||
:done() | :done() | ||
-- Conteúdo | |||
local conteudo = html:tag("div") | local conteudo = html:tag("div") | ||
:addClass("conquista-conteudo") | :addClass("conquista-conteudo") | ||
| Linha 32: | Linha 35: | ||
:done() | :done() | ||
-- | -- Container de recompensas | ||
local rec = conteudo:tag("div") | local rec = conteudo:tag("div") | ||
:addClass("conquista-recompensas") | :addClass("conquista-recompensas") | ||
-- | -- Para cada item Nome:Qtd | ||
for entry in mw.text.gsplit(itensStr, ",", true) do | for entry in mw.text.gsplit(itensStr, ",", true) do | ||
local e = mw.text.trim(entry) | local e = mw.text.trim(entry) | ||
if e ~= "" then | if e ~= "" then | ||
local name, qty = e:match("^%s*(.-)%s*:%s*(%d+)%s*$") | local name, qty = e:match("^%s*(.-)%s*:%s*(%d+)%s*$") | ||
if name and qty then | if name and qty then | ||
-- | -- Aqui criamos o <div class="item"> e guardamos na variável | ||
rec:tag("div") | local itemDiv = rec:tag("div") | ||
:addClass("item") | :addClass("item") | ||
"[[Arquivo:%s.png|32x32px|class=item-img|link=]]", | -- geramos a imagem dentro desse mesmo itemDiv | ||
itemDiv:wikitext( string.format( | |||
"[[Arquivo:%s.png|32x32px|class=item-img|link=]]", | |||
name | name | ||
)) | |||
-- e só então adicionamos o badge dentro do mesmo wrapper | |||
itemDiv:tag("span") | |||
:addClass("item-qtd") | :addClass("item-qtd") | ||
:wikitext("x" .. qty) | :wikitext("x" .. qty) | ||
Edição das 13h22min de 7 de junho de 2025
A documentação para este módulo pode ser criada em Módulo:Teste/doc
-- Módulo:Achiev (corrigido para badge dentro do .item)
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
html:tag("div")
:addClass("conquista-icon")
:wikitext(string.format(
"[[Arquivo:%s.png|82px|link=]]",
imagem
))
:done()
-- Conteúdo
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()
-- Container de recompensas
local rec = conteudo:tag("div")
:addClass("conquista-recompensas")
-- Para cada item Nome:Qtd
for entry in mw.text.gsplit(itensStr, ",", true) do
local e = mw.text.trim(entry)
if e ~= "" then
local name, qty = e:match("^%s*(.-)%s*:%s*(%d+)%s*$")
if name and qty then
-- Aqui criamos o <div class="item"> e guardamos na variável
local itemDiv = rec:tag("div")
:addClass("item")
-- geramos a imagem dentro desse mesmo itemDiv
itemDiv:wikitext( string.format(
"[[Arquivo:%s.png|32x32px|class=item-img|link=]]",
name
))
-- e só então adicionamos o badge dentro do mesmo wrapper
itemDiv:tag("span")
:addClass("item-qtd")
:wikitext("x" .. qty)
:done()
end
end
end
return tostring(html)
end
return p