Mudanças entre as edições de "Módulo:Lari1"
Ir para navegação
Ir para pesquisar
| Linha 1: | Linha 1: | ||
local p = {} | local p = {} | ||
function p.card(frame) | |||
function p. | |||
local args = frame:getParent().args | local args = frame:getParent().args | ||
local | local id = args.id or 'b1' | ||
local boss = args.boss or 'Boss' | |||
local | local ilha = args.ilha or '' | ||
local img = args.img or '' | |||
-- Coletar skills dos parâmetros | |||
local skills = {} | local skills = {} | ||
for i = 1, 5 do | |||
local nome = args['s' .. i] | |||
local | if nome and nome ~= '' then | ||
table.insert(skills, { | |||
tab = args['s' .. i .. '_tab'] or nome, | |||
nome = nome, | |||
video = args['s' .. i .. '_video'] or '', | |||
desc = args['s' .. i .. '_desc'] or '' | |||
}) | |||
end | |||
end | end | ||
if #skills == 0 then return | if #skills == 0 then return '' end | ||
local | local h = {} | ||
-- Card header | |||
table.insert(h, '<div class="lk-card">') | |||
table.insert(h, '<div class="lk-card-header">') | |||
if img ~= '' then | |||
table.insert(h, '<img src="' .. img .. '" alt="' .. boss .. '">') | |||
end | end | ||
table.insert(h, '<div><div class="lk-boss-name">' .. boss .. '</div>') | |||
table.insert(h, '<div class="lk-boss-island">' .. ilha .. '</div></div></div>') | |||
-- Tabs container | |||
table.insert(h, '<div class="lk-tabs">') | |||
local | -- Radio inputs | ||
for i, _ in ipairs(skills) do | |||
local chk = (i == 1) and ' checked' or '' | |||
table.insert(h, '<input type="radio" name="' .. id .. '" id="' .. id .. 's' .. i .. '" class="lk-radio"' .. chk .. '>') | |||
end | |||
-- Nav labels | |||
table.insert(h, '<div class="lk-nav">') | |||
for i, s in ipairs(skills) do | |||
table.insert(h, '<label for="' .. id .. 's' .. i .. '">' .. s.tab .. '</label>') | |||
end | |||
table.insert(h, '</div>') | |||
-- Panels | |||
for i, s in ipairs(skills) do | |||
table.insert(h, '<div class="lk-panel p-' .. id .. 's' .. i .. '">') | |||
if s.video ~= '' then | |||
table.insert(h, '<div class="lk-video"><iframe src="' .. s.video .. '" allowfullscreen></iframe></div>') | |||
end | end | ||
table.insert(h, '<span class="lk-skill-name">' .. s.nome .. '</span>') | |||
table.insert(h, '<p class="lk-skill-desc">' .. s.desc .. '</p>') | |||
table.insert(h, '</div>') | |||
end | end | ||
return | table.insert(h, '</div></div>') | ||
return table.concat(h, '\n') | |||
end | end | ||
return p | return p | ||
Edição das 11h49min de 17 de março de 2026
A documentação para este módulo pode ser criada em Módulo:Lari1/doc
local p = {}
function p.card(frame)
local args = frame:getParent().args
local id = args.id or 'b1'
local boss = args.boss or 'Boss'
local ilha = args.ilha or ''
local img = args.img or ''
-- Coletar skills dos parâmetros
local skills = {}
for i = 1, 5 do
local nome = args['s' .. i]
if nome and nome ~= '' then
table.insert(skills, {
tab = args['s' .. i .. '_tab'] or nome,
nome = nome,
video = args['s' .. i .. '_video'] or '',
desc = args['s' .. i .. '_desc'] or ''
})
end
end
if #skills == 0 then return '' end
local h = {}
-- Card header
table.insert(h, '<div class="lk-card">')
table.insert(h, '<div class="lk-card-header">')
if img ~= '' then
table.insert(h, '<img src="' .. img .. '" alt="' .. boss .. '">')
end
table.insert(h, '<div><div class="lk-boss-name">' .. boss .. '</div>')
table.insert(h, '<div class="lk-boss-island">' .. ilha .. '</div></div></div>')
-- Tabs container
table.insert(h, '<div class="lk-tabs">')
-- Radio inputs
for i, _ in ipairs(skills) do
local chk = (i == 1) and ' checked' or ''
table.insert(h, '<input type="radio" name="' .. id .. '" id="' .. id .. 's' .. i .. '" class="lk-radio"' .. chk .. '>')
end
-- Nav labels
table.insert(h, '<div class="lk-nav">')
for i, s in ipairs(skills) do
table.insert(h, '<label for="' .. id .. 's' .. i .. '">' .. s.tab .. '</label>')
end
table.insert(h, '</div>')
-- Panels
for i, s in ipairs(skills) do
table.insert(h, '<div class="lk-panel p-' .. id .. 's' .. i .. '">')
if s.video ~= '' then
table.insert(h, '<div class="lk-video"><iframe src="' .. s.video .. '" allowfullscreen></iframe></div>')
end
table.insert(h, '<span class="lk-skill-name">' .. s.nome .. '</span>')
table.insert(h, '<p class="lk-skill-desc">' .. s.desc .. '</p>')
table.insert(h, '</div>')
end
table.insert(h, '</div></div>')
return table.concat(h, '\n')
end
return p