Module:CharColorParse

local p = {}

function p.parse(frame) local a = frame.args[1]:gsub('(amp;)', '') a = string.gsub(a, "(&)(%w)(%^?%w?)", function(_,color,background)       local luatable = {            ['r'] = "#a64a2e",            ['R'] = "#d74200",            ['g'] = "#009403",            ['G'] = "#00c420",            ['b'] = "#0048bd",            ['B'] = "#0096ff",            ['c'] = "#40a4b9",            ['C'] = "#77bfcf",            ['m'] = "#b154cf",            ['M'] = "#da5bd6",            ['w'] = "#98875f",            ['W'] = "#cfc041",            ['k'] = "#0f3b3a",            ['K'] = "#155352",            ['y'] = "#b1c9c3",            ['Y'] = "#FFFFFF",            ['o'] = "#f15f22",            ['O'] = "#e99f10"        } local bgluatable = {            ["^r"] = "#a64a2e",            ["^R"] = "#d74200",            ["^g"] = "#009403",            ["^G"] = "#00c420",            ["^b"] = "#0048bd",            ["^B"] = "#0096ff",            ["^c"] = "#40a4b9",            ["^C"] = "#77bfcf", ["^m"] = "#b154cf", ["^M"] = "#da5bd6", ["^w"] = "#98875f", ["^W"] = "#cfc041", ["^k"] = "#0f3b3a", ["^K"] = "#155352", ["^y"] = "#b1c9c3", ["^Y"] = "#FFFFFF", ["^o"] = "#f15f22", ["^O"] = "#e99f10", } local c = bgluatable[background] if (c == nil or c == '') then c = "transparent" end return "color:" .. luatable[color] .. ";background:" .. c ..";font-family:Source Code Pro;" end) return a end

return p