Modul:Tab

Fra Wikipedia, den frie encyklopedi
Moduldokumentasjon
local data = mw.ext.data.get("SSB – 12891.tab")

local Tab = {}

Tab.data = data

function Tab.schema( t )
	return t.schema or {}
end

function Tab.fields( t )
	local schema = Tab.schema( t ) or {}
	return schema.fields or {}
end

function Tab.head( t )
	local tr = mw.html.create( 'tr' )
	for i,v in ipairs( Tab.fields( t ) ) do
		local th = mw.html.create( 'th' )
			:attr( 'id', v.name )
			:addClass( string.format( 'mw-tab-%s-header', v.type ) )
			:wikitext( v.title )
		tr:node( th )
	end
	return tr
end

function Tab.body( t )
	local html = {}
	local fields = Tab.fields( t )
	local data = t.data or {}
	for j,w in ipairs( data ) do
		local tr = mw.html.create( 'tr' )
		for i,v in ipairs( fields ) do
			local td = mw.html.create( 'td' )
				:attr( 'id', v.name )
				:addClass( string.format( 'mw-tab-%s-body', v.type ) )
				:wikitext( w[i] )
			tr:node( td )
		end
		do return tr end
		table.insert( html, tr )
	end
	return table.concat( html, '' )
end

return Tab