Módulo:Skillbox
Ir para navegação
Ir para pesquisar
A documentação para este módulo pode ser criada em Módulo:Skillbox/doc
local p = {}
function parseSkill(text)
local skill = { nome = '', descricao = '', video = '' }
for line in mw.text.gsplit(text, '\n', true) do
local chave, valor = line:match("^%s*(.-)%s*=%s*(.-)%s*$")
if chave and valor then
chave = mw.text.trim(chave:lower())
valor = mw.text.trim(valor)
if chave == "nome" then
skill.nome = valor
elseif chave == "descrição" or chave == "descricao" then
skill.descricao = valor
elseif chave == "vídeo" or chave == "video" then
skill.video = valor
end
end
end
return skill
end
function p.exibir(frame)
local args = frame:getParent().args
local skills = {}
for _, v in ipairs(args) do
if v and v:find("=") then
table.insert(skills, parseSkill(v))
end
end
local html = mw.html.create("div")
html:addClass("skillbox-container")
local tabArea = html:tag("div"):addClass("skillbox-tabs")
local contentArea = html:tag("div"):addClass("skillbox-content")
for i, skill in ipairs(skills) do
local id = "skill" .. i
-- botão
local button = tabArea:tag("button")
button
:addClass("skillbox-tab")
:addClass(i == 1 and "active" or "")
:attr("data-target", id)
:wikitext(skill.nome or ("Skill " .. i))
-- painel de conteúdo
local panel = contentArea:tag("div")
panel
:addClass("skillbox-panel")
:addClass(i == 1 and "active" or "")
:attr("id", id)
panel:tag("div")
:addClass("skillbox-desc")
:wikitext(skill.descricao or "")
if skill.video and skill.video ~= "" then
local video = panel:tag("video")
video
:addClass("skillbox-video")
:attr("controls", true)
:tag("source")
:attr("src", "https://wiki.gla.com.br/index.php/Special:FilePath/" .. skill.video)
:attr("type", "video/mp4")
end
end
return tostring(html)
end
return p