Module:Infobox album

local p = {}

local types = { ['ep'] = { color = 'lightsalmon', link = 'EP', category = 'EPs', respect_casing = true },	['studio'] = { color = 'lightsteelblue', link = 'Studio album', category = 'Studio albums' },	['demo'] = { color = 'khaki', link = 'Demo album', category = 'demo album' },	['live'] = { color = 'burlywood', link = 'Live album', category = 'Live albums' },	['greatest hits'] = { color = 'darkseagreen', link = 'Compilation album', category = 'Compilation albums' },	['box set'] = { color = 'darkseagreen', link = 'Box set', category = 'Box sets' },	['compilation'] = { color = 'darkseagreen', link = 'Compilation album', category = 'Compilation albums' },	['remix'] = { color = 'peachpuff', link = 'Remix album', category = 'Category:Remix albums' },	['soundtrack'] = { color = 'gainsboro', link = 'Soundtrack album', category = 'Soundtrack albums' },	['film score'] = { color = 'gainsboro', link = 'Soundtrack album', category = 'Soundtrack albums' },	['video'] = { color = '&#32;#99CCFF', link = 'Video', category = 'Music videos' },	['tribute'] = { color = 'peachpuff', link = 'Tribute album', category = 'Tribute albums' },	['bootleg'] = { color = '&#32;#E6E8FA', link = 'Bootleg', category = 'Bootleg albums' } }

function p.link( frame ) local given = mw.text.split(frame.args[1], "%s*,%s*") return types[given[1]].link end

function p.color( frame ) local given = mw.text.split(frame.args[1], "%s*,%s*") return types[given[1]].color end

function p.categories( frame ) local given = mw.text.split(frame.args[1], "%s*,%s*") local artist = frame.args[2]

local cats = '' for _, v in ipairs(types) do		local data = types[v] cats = cats .. ''		if data.respect_casing then cats = cats .. ''		else cats = cats .. ''		end end end

return p