Modul:Tabber
Aus Star Citizen Wiki
Weitere Optionen
Die Dokumentation für dieses Modul kann unter Modul:Tabber/doc erstellt werden
local Tabber = {}
--- Helper function to get Tabber length
---
--- @param data table
--- @return number
local function getTabberLength( data )
local length = 0
for k, _ in next, data do
if mw.ustring.find( k, 'label' ) == 1 then
length = length + 1
end
end
return length
end
--- Render Tabber
---
--- @param data table { label{n}, content{n} }
--- @return string wikitext of Tabber
function Tabber.renderTabber( data, idSuffix )
if type( data ) ~= 'table' then
return ''
end
local tabberContent = {}
for i = 1, getTabberLength( data ) do
local label = data[ 'label' .. i ]
local content = data[ 'content' .. i ]
if label ~= nil and label ~= '' and content ~= nil and content ~= '' then
-- TabberNeue leitet die DOM-Ids aus dem Label ab; der Suffix hält die
-- Ids eindeutig, wenn eine Seite mehrere identische Labels rendert
if idSuffix ~= nil and idSuffix ~= '' then
label = label .. idSuffix
end
table.insert( tabberContent, table.concat( { '|-|', label, '=', content } ) )
end
end
if next( tabberContent ) == nil then
return ''
end
return mw.getCurrentFrame():extensionTag{
name = 'tabber', content = table.concat( tabberContent )
}
end
return Tabber