This template converts a "type" value to a color, using the supported icon set. It is used in Template:marker and Template:listing.

type css3 color name
see #4682B4   
do #808080   
buy #008080   
eat #D2691E   
drink #000000   
sleep #000080   
listing #228B22   
city #0000FF   
go #A52A2A   
other #228B22   
view #4169E1   
vicinity #800000   
around #800080   
gold #FFD700   
lime #BFFF00   
red #FF0000   
silver #C0C0C0   

Examples:

input output comment
#{{#invoke:TypeToColor|convert|sleep}} #000080 type to color
#{{#invoke:TypeToColor|convert|red}} #FF0000 color to color
#{{#invoke:TypeToColor|convert|wrong}} #C0C0C0 wrong to default
#{{#invoke:TypeToColor|convert|}} #C0C0C0 no to default

local p = {}

function p.convert( frame )
	return p.convertImpl(frame.args[1])
end

function p.convertImpl(type)
	local types = {
		['do'] = '808080',
		around = '800080',
		buy = '008080',
		city = '0000FF',
		drink = '000000',
		eat = 'D2691E',
		go = 'A52A2A',
		listing = '228B22',
		other = '228B22',
		see = '4682B4',
		sleep = '000080',
		vicinity = '800000',
		view = '4169E1',
	}

	local result = types[type]
	if result then
		return result
	end
	
	-- Deprecated usage - trace it
	types = {
		black = '000000',
		blue = '0000FF',
		brown = 'A52A2A',
		chocolate = 'D2691E',
		forestgreen = '228B22',
		gold = 'FFD700',
		gray = '808080',
		grey = '808080',
		lime = 'BFFF00',
		magenta = 'FF00FF',
		maroon = '800000',
		mediumaquamarine = '66CDAA',
		navy = '000080',
		orange = 'FFA500',
		plum = 'DDA0DD',
		purple = '800080',
		red = 'FF0000',
		royalblue = '4169E1',
		silver = 'C0C0C0',
		steelblue = '4682B4',
		teal = '008080',
	}

	local result = types[type]
	if result then
		return result --  .. '[[category:Fixme TypeToColor]]'
	end

	return 'C0C0C0' -- .. '[[category:Fixme TypeToColor Unknown]]'
end

return p