Más acciones
Este módulo es utilizado por la plantilla Pestañas. Es encargado de generar las diferentes pestañas, actualmente tiene un máximo de 8 pestañas, sin embargo, se puede aumentar.
Para más información sobre su uso dirígete a la documentación de la plantilla.
local p = {}
function p.Tabber(frame)
local args = frame.args
local tabs = {}
local tabContainer = mw.html.create('div'):addClass('article-container-tabs tabber__tabs')
-- Obtener el título base del artículo
local baseTitle = mw.title.getCurrentTitle().text:match("([^/]+)")
-- Main page tab
if mw.title.getCurrentTitle().namespace == 0 then
local mainPageText = args[1] or 'Información'
local mainPageTab = mw.html.create('li'):addClass('article-tab tabber__tab' .. (mw.title.getCurrentTitle().text == baseTitle and ' selected' or '')):wikitext('[[' .. mw.title.getCurrentTitle().nsText .. ':' .. baseTitle .. '|' .. mainPageText .. ']]')
table.insert(tabs, mainPageTab)
end
-- Generate tabs dynamically
for i = 2, 8 do
local tabName = args['tab' .. i]
if tabName and tabName ~= '' then
local tabText = mw.html.create('li')
if mw.title.getCurrentTitle().text == baseTitle .. '/' .. tabName then
tabText:addClass('article-tab tabber__tab selected'):wikitext(tabName)
else
tabText:addClass('article-tab tabber__tab'):wikitext('[[' .. mw.title.getCurrentTitle().nsText .. ':' .. baseTitle .. '/' .. tabName .. '|' .. tabName .. ']]')
end
table.insert(tabs, tabText)
else
break -- Exit loop if no more tabs are defined
end
end
-- Add tabs to tab container
for _, tab in ipairs(tabs) do
tabContainer:node(tab)
end
return tostring(tabContainer)
end
return p