Module:Color: Difference between revisions
Jump to navigation
Jump to search
(WIP: Writing a module for generating color swatches) |
m (Make indentation consistent: MediaWiki's built-in editor seems to like tabs) |
||
| Line 21: | Line 21: | ||
local ega_color_names = { | local ega_color_names = { | ||
"black", | |||
"dark blue", | |||
"dark green", | |||
"dark cyan", | |||
"dark red", | |||
"dark purple", | |||
"dark brown", | |||
"light gray", | |||
"dark gray", | |||
"blue", | |||
"green", | |||
"cyan", | |||
"red", | |||
"purple", | |||
"yellow", | |||
"white" | |||
} | } | ||
function index_to_name(i) | function index_to_name(i) | ||
if i ~= math.floor(i) or i < 0 or i > 15 then | |||
return "???" | |||
end | |||
return ega_color_names[i + 1] | |||
end | end | ||
function combo_name(bg_index, fg_index) | function combo_name(bg_index, fg_index) | ||
blinking = false | |||
if bg_index >= 8 then | |||
blinking = true | |||
bg_index = bg_index - 8 | |||
end | |||
result = index_to_name(fg_index) .. " on " .. index_to_name(bg_index) | |||
if blinking then | |||
result = "blinking " .. result | |||
end | |||
return result | |||
end | end | ||
function p.swatch(frame) | function p.swatch(frame) | ||
bg = frame.args.bg | |||
fg = frame.args.fg | |||
return combo_name(bg, fg) | return combo_name(bg, fg) | ||
end | end | ||
return p | return p | ||
Revision as of 05:55, 11 January 2021
Documentation for this module may be created at Module:Color/doc
local p = {}
local ega_hex_codes = {
"#000",
"#00a",
"#0a0",
"#0aa",
"#a00",
"#a0a",
"#a50",
"#aaa",
"#555",
"#55f",
"#5f5",
"#5ff",
"#f55",
"#f5f",
"#ff5",
"#fff"
}
local ega_color_names = {
"black",
"dark blue",
"dark green",
"dark cyan",
"dark red",
"dark purple",
"dark brown",
"light gray",
"dark gray",
"blue",
"green",
"cyan",
"red",
"purple",
"yellow",
"white"
}
function index_to_name(i)
if i ~= math.floor(i) or i < 0 or i > 15 then
return "???"
end
return ega_color_names[i + 1]
end
function combo_name(bg_index, fg_index)
blinking = false
if bg_index >= 8 then
blinking = true
bg_index = bg_index - 8
end
result = index_to_name(fg_index) .. " on " .. index_to_name(bg_index)
if blinking then
result = "blinking " .. result
end
return result
end
function p.swatch(frame)
bg = frame.args.bg
fg = frame.args.fg
return combo_name(bg, fg)
end
return p