Módulo:Lari1
Ir para navegação
Ir para pesquisar
A documentação para este módulo pode ser criada em Módulo:Lari1/doc
local p = {}
function p.render(frame)
local args = frame:getParent().args
local nome = mw.text.trim(args['nome'] or '')
local root = mw.html.create('div'):attr('class', 'sv-wrap')
-- botão de tema
root:tag('span'):attr('class', 'tema-btn'):wikitext('☾ Dark')
-- título
if nome ~= '' then
root:tag('div'):attr('class', 'sv-titulo'):wikitext(nome)
end
-- coleta skills
local skills = {}
local i = 1
while true do
local titulo = mw.text.trim(args['skill' .. i .. 'titulo'] or '')
if titulo == '' then break end
skills[#skills + 1] = i
i = i + 1
end
if #skills == 0 then return tostring(root) end
-- container principal
local box = root:tag('div'):attr('class', 'sv-box')
-- barra de tabs
local tabbar = box:tag('div'):attr('class', 'sv-tabs')
for idx, n in ipairs(skills) do
local img = mw.text.trim(args['skill' .. n .. 'img'] or '')
local tab = tabbar:tag('span')
:attr('class', idx == 1 and 'sv-tab active' or 'sv-tab')
:attr('data-skill', tostring(n))
if img ~= '' then
tab:node(mw.html.create(''):wikitext('[[File:' .. img .. '|32px|link=]]'))
else
tab:wikitext(tostring(n))
end
end
-- painéis de cada skill
for idx, n in ipairs(skills) do
local px = 'skill' .. n
local titulo = mw.text.trim(args[px .. 'titulo'] or '')
local youtube = mw.text.trim(args[px .. 'youtube'] or '')
local video = mw.text.trim(args[px .. 'video'] or '')
local panel = box:tag('div')
:attr('class', idx == 1 and 'sv-panel active' or 'sv-panel')
:attr('data-panel', tostring(n))
-- título da skill
panel:tag('h2'):attr('class', 'sv-skill-titulo'):wikitext(titulo)
-- descrições
local descsec = panel:tag('div'):attr('class', 'sv-desc')
local j = 1
while true do
local desc = mw.text.trim(args[px .. 'desc' .. j] or '')
if desc == '' then break end
descsec:tag('p'):wikitext(desc)
j = j + 1
end
-- mídia
if youtube ~= '' then
local media = panel:tag('div'):attr('class', 'sv-media')
media:attr('data-youtube', youtube)
elseif video ~= '' then
local media = panel:tag('div'):attr('class', 'sv-media')
local url = mw.title.new('Especial:FilePath/' .. video)
media:tag('video')
:attr('src', tostring(url))
:attr('controls', '')
:attr('loop', '')
:attr('muted', '')
:wikitext('')
end
end
return tostring(root)
end
return p