Module:Party name with color

-- This module implements Template:Party name with color local p = {} local fetch = nil -- lazy load

local function load_political_party_module if fetch == nil then fetch = require('Module:Political party')._fetch end end

local function page_exist(page_name) if not page_name then return false end if mw.title.new(page_name).exists then return true end return false end

local function simplify_rowspan(text) text = mw.ustring.gsub(text or , 'rowspan="1"%s*', ) return text end

function p._cell(args) if not args[1] then return '' end

local display_name = nil if args.dab then display_name = args[1] elseif args.full then display_name = mw.ustring.gsub(args[1], '%s+%b$', '') elseif args.shortname then display_name = args.shortname else load_political_party_module display_name = fetch({args[1], 'shortname'}) end

local text = nil if args.no_link then text = display_name else -- TODO: should this be on by default or do we want red links? if page_exist(args[1]) then text = string.format("%s", args[1], display_name) else text = display_name end end

local color = args.colour or args.color if not color then load_political_party_module color = fetch({args[1], 'color'}) end local line1 = 'rowspan="%s" style="width: 2px; background-color: %s;" data-sort-value="%s" |\n' local line2 = '| scope="row" rowspan="%s" style="text-align: left;" | %s' local rowspan = tonumber(args.rowspan) or 1 line1 = string.format(line1, rowspan, color, args[1]) line2 = string.format(line2, rowspan, text)

return simplify_rowspan(line1 .. line2) end

function p.cell(frame) local getArgs = require('Module:Arguments').getArgs local args = getArgs(frame) local check = require('Module:Check for unknown parameters')._check local tracking = check({		['unknown']='',		['preview']='Page using Template:Party name with color with unknown parameter "_VALUE_"',		['showblankpositional']='1',		'1', 'color', 'colour', 'dab', 'full', 'no_link', 'rowspan', 'shortname'	}, frame:getParent.args) return p._cell(args) .. tracking end

return p