Jump to content

Module:Political party/testtable

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Gonnym (talk | contribs) at 14:36, 25 September 2021 (removed unused code - if needed feel free to revert). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

local p = {}

-- Example of having all the data - color and names - in one table. Requires one page to be edited instead of two when adding a new party.
function p.tables(frame)
	-- Initialise and populate variables
	local args = frame.args
	local index = args['letter']
	
	-- Load data from submodule
	local data = mw.loadData('Module:Political party/' .. index)
	local all_parties = data.full


	-- helper function
	local function table_row(t, c)
		local res = mw.html.create('')
		res:tag('td')
			:wikitext(t)
		res:tag('td')
			:css('background', c['color'])
			:wikitext(c['color'])
		res:tag('td')
			:wikitext(c['abbrev'])
		res:tag('td')
			:wikitext(c['shortname'])
		return tostring(res)
	end

	-- build table
	local root = mw.html.create('table')
	root:addClass('wikitable sortable')
		:css('background', 'transparent')
		:css('font-size', '90%')
		:css('line-height', '100%')
		:cssText(style)
	local row = root:tag('tr')
	row:tag('th')
		:wikitext('Political party name')
	row:tag('th')
		:addClass('unsortable')
		:wikitext('color')
	row:tag('th')
		:addClass('unsortable')
		:wikitext('abbrev')
	row:tag('th')
		:addClass('unsortable')
		:wikitext('shortname')

	for party_name, party_vals in pairs(data.full) do
		row = root:tag('tr')
		row:wikitext(table_row(party_name, party_vals))
	end
	return tostring(root)

end

return p