Módulo:Gb2

De Wiki Gla
Revisão de 23h58min de 28 de dezembro de 2025 por GhoulBlack (discussão | contribs) (Criou página com 'local p = {} function p.render(frame) local args = frame:getParent().args local skills = {} for i = 1, 10 do if args["skill" .. i .. "_title"] then table.insert(skil...')
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para navegação Ir para pesquisar

A documentação para este módulo pode ser criada em Módulo:Gb2/doc

local p = {}

function p.render(frame)
	local args = frame:getParent().args
	local skills = {}

	for i = 1, 10 do
		if args["skill" .. i .. "_title"] then
			table.insert(skills, {
				title = args["skill" .. i .. "_title"],
				desc  = args["skill" .. i .. "_desc"] or "",
				type  = args["skill" .. i .. "_type"] or "video",
				src   = args["skill" .. i .. "_src"]
			})
		end
	end

	if #skills == 0 then
		return "Nenhuma habilidade definida."
	end

	local html = mw.html.create("div"):addClass("skill-box")

	-- Tabs
	local tabs = mw.html.create("div"):addClass("skill-tabs")
	for i = 1, #skills do
		tabs:tag("span")
			:addClass("skill-tab")
			:wikitext(i)
	end
	html:node(tabs)

	-- Conteúdo
	for i, skill in ipairs(skills) do
		local block = mw.html.create("div")
			:addClass("skill-block")
			:addClass(i == 1 and "active" or "")

		block:tag("h2")
			:addClass("skill-title")
			:wikitext(skill.title)

		block:tag("div")
			:addClass("skill-description")
			:wikitext(skill.desc)

		local media = block:tag("div"):addClass("skill-media")

		if skill.type == "iframe" then
			media:tag("iframe")
				:attr("src", skill.src)
				:attr("allowfullscreen", "true")
		else
			media:tag("video")
				:attr("src", "Special:FilePath/" .. skill.src)
				:attr("controls", "true")
				:attr("loop", "true")
				:attr("muted", "true")
		end

		html:node(block)
	end

	return tostring(html)
end

return p