Module:Tabber

Revision as of 18:13, 7 November 2023 by PabloEscobar (talk | contribs) (1 revision imported: starcitizen tools)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Documentation for this module may be created at Module:Tabber/doc

local p = {}

--- Helper function to get Tabber length
--- @param table
--- @return int
local function getTabberLength( t )
	local length = 0
    for k, _ in next, t do
    	if string.find( k, 'label' ) == 1 then
        	length = length + 1
        end
    end
    return length
end

--- Render Tabber
--- @param table data { label{n}, content{n} }
--- @return string wikitext of Tabber
function p.renderTabber( data )
	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
			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 p