Module:CharColorParse

From Caves of Qud Wiki
Jump to navigation Jump to search

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