Module:Bicolor/data
Lua
CodeDiscussionEditHistoryLinksLink count Subpages:DocumentationTestsResultsSandboxLive code All modules
Supporting module for Module:Bicolor.
UsageUsage
local c = require('Module:Bicolor/data')
Code
--[[
Bicolor module to contain colors for Module:Bicolor
We can load this efficiently with
local c = mw.loadData("Module:Bicolor/data")
local colors = c.colors
local colorvalues = c.colorvalues
local colortitles = c.colortitles
Creating the definitions like this offers us tables indexed by number or by color name
and combinations as a sequence or an indexed set for efficient testing
--]]
local p = {}
-- color definitions as a sequence of pairs of values
-- will be used as colors[n].name and colors[n].value
-- insert new colors here, preferably in alphabetical order
p.colors = {
{name = "amber", value = "#FFBF00"},
{name = "apricot", value = "#FBCEB1"},
{name = "azure", value = "#007FFF"},
{name = "beige", value = "#F5F5DC"},
{name = "black", value = "black"},
{name = "blond", value = "#FAF0BE"},
{name = "blue", value = "#2337F7"},
{name = "blue-gray", value = "#6699CC"},
{name = "bordeaux", value = "#571C20"},
{name = "bronze", value = "#CD7F32"},
{name = "brown", value = "#80583C"},
{name = "burgundy", value = "#900020"},
{name = "celadon", value = "#ACE1AF"},
{name = "chartreuse", value = "#7FFF00"},
{name = "coral", value = "#F5757F"},
{name = "cream", value = "#FFFDD0"},
{name = "crimson", value = "crimson"},
{name = "cyan", value = "#53F1F1"},
{name = "ecru", value = "#C2B280"},
{name = "gold", value = "gold"},
{name = "golden", value = "gold"},
{name = "gray", value = "gray"},
{name = "green", value = "#18A814"},
{name = "grey", value = "grey"},
{name = "hazel", value = "#5F6401"},
{name = "indigo", value = "#2E4085"},
{name = "ivory", value = "#FFFFF0"},
{name = "khaki", value = "#C3B091"},
{name = "lilac", value = "#DBBFF9"},
{name = "lime green", value = "#BFFF00"},
{name = "magenta", value = "#E83BE8"},
{name = "mango", value = "#FFC800"},
{name = "maroon", value = "maroon"},
{name = "mauve", value = "#E0B0FF"},
{name = "navy", value = "#000080"},
{name = "navy blue", value = "#000080"},
{name = "olive", value = "olive"},
{name = "orange", value = "orange"},
{name = "pink", value = "pink"},
{name = "purple", value = "#8A1799"},
{name = "red", value = "red"},
{name = "rose", value = "#FF007F"},
{name = "salmon", value = "salmon"},
{name = "sepia", value = "#704214"},
{name = "silver", value = "silver"},
{name = "tan", value = "tan"},
{name = "teal", value = "teal"},
{name = "turquoise", value = "#28C6B5"},
{name = "vermilion", value = "#E34234"},
{name = "violet", value = "#6422D3"},
{name = "white", value = "white"},
{name = "yellow", value = "#F1F14B"}
}
-- sort p.colors by name
table.sort(p.colors, function(a, b) return a.name < b.name end)
-- add titles
for k, color in ipairs(p.colors) do
if color.name ~= color.value then
color.title = color.name .. ' (' .. color.value .. ')'
else
color.title = color.name
end
end
-- make length of p.colors accessible from calling module
p.colorcount = #(p.colors)
-- derive the values from the color names
-- so that colorvalues["name-of-color"] will have the corresponding color value
p.colorvalues = {}
for i, v in ipairs(p.colors) do
p.colorvalues[v.name] = v.value
end
-- derive the titles from the color names
-- so that colortitles["name-of-color"] will have the corresponding color title
p.colortitles = {}
for i, v in ipairs(p.colors) do
p.colortitles[v.name] = v.title
end
return p