Jump to content

Module:Political party/testtable

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Perryprog (talk | contribs) at 15:01, 19 September 2021 (Remove get_values due to being unneeded and change ipairs to pairs for the party loop). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

local p = {}
local all_parties = {}

local function stripwhitespace(text)
	return text:match("^%s*(.-)%s*$")
end


-- 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 party = stripToNil(args[1]) or error('parameter 1 should be a party name')
	--local out_type = stripToNil(args[2]) or error('parameter 2 should be the output type')
	local index = args['letter']
	
	-- Load data from submodule
	local data = mw.loadData('Module:Political names/' .. index)
	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