Module:Colored list
From The Goon Show Depository
Revision as of 13:06, 27 April 2020 by en>Ahecht (Move sequences outside of function)
local sequences = {
excel = {
[0]='#274',
[1]='#36C',
[2]='#C33',
[3]='#85B',
[4]='#072',
[5]='#B38',
[6]='#B40',
[7]='#279'
}, calc = {
[0] = '#0000FF',
[1] = '#FF0000',
[2] = '#FF00FF',
[3] = '#008000',
[4] = '#000080',
[5] = '#800000',
[6] = '#800080',
[7] = '#808000'
}, accent = {
[0]='#7fc97f',
[1]='#beaed4',
[2]='#fdc086',
[3]='#ffff99',
[4]='#386cb0',
[5]='#f0027f',
[6]='#bf5b17',
[7]='#666666'
}, dark2 = {
[0]='#1b9e77',
[1]='#d95f02',
[2]='#7570b3',
[3]='#e7298a',
[4]='#66a61e',
[5]='#e6ab02',
[6]='#a6761d',
[7]='#666666'
}, category10 = {
[0]='#1f77b4',
[1]='#ff7f0e',
[2]='#2ca02c',
[3]='#d62728',
[4]='#9467bd',
[5]='#8c564b',
[6]='#e377c2',
[7]='#7f7f7f',
[8]='#bcbd22',
[9]='#17becf'
}, set1 = {
[0]='#e41a1c',
[1]='#377eb8',
[2]='#4daf4a',
[3]='#984ea3',
[4]='#ff7f00',
[5]='#ffff33',
[6]='#a65628',
[7]='#f781bf',
[8]='#999999'
}, tableau10 = {
[0]='#4e79a7',
[1]='#f28e2c',
[2]='#e15759',
[3]='#76b7b2',
[4]='#59a14f',
[5]='#edc949',
[6]='#af7aa1',
[7]='#ff9da7',
[8]='#9c755f',
[9]='#bab0ab',
}, google = {
[0]='#F92',
[1]='#739',
[2]='#2AC',
[3]='#A14',
[4]='#48F',
[5]='#FB2',
[6]='#6B4',
[7]='#754',
[8]='#999',
[9]='#EC4',
[10]='#45A',
[11]='#CD4',
}, category20 = {
[0]='#1f77b4',
[1]='#aec7e8',
[2]='#ff7f0e',
[3]='#ffbb78',
[4]='#2ca02c',
[5]='#98df8a',
[6]='#d62728',
[7]='#ff9896',
[8]='#9467bd',
[9]='#c5b0d5',
[10]='#8c564b',
[11]='#c49c94',
[12]='#e377c2',
[13]='#f7b6d2',
[14]='#7f7f7f',
[15]='#c7c7c7',
[16]='#bcbd22',
[17]='#dbdb8d',
[18]='#17becf',
[19]='#9edae5'
}, category20b = {
[0]='#393b79',
[1]='#5254a3',
[2]='#6b6ecf',
[3]='#9c9ede',
[4]='#637939',
[5]='#8ca252',
[6]='#b5cf6b',
[7]='#cedb9c',
[8]='#8c6d31',
[9]='#bd9e39',
[10]='#e7ba52',
[11]='#e7cb94',
[12]='#843c39',
[13]='#ad494a',
[14]='#d6616b',
[15]='#e7969c',
[16]='#7b4173',
[17]='#a55194',
[18]='#ce6dbd',
[19]='#de9ed6',
}, category20c = {
[0]='#3182bd',
[1]='#6baed6',
[2]='#9ecae1',
[3]='#c6dbef',
[4]='#e6550d',
[5]='#fd8d3c',
[6]='#fdae6b',
[7]='#fdd0a2',
[8]='#31a354',
[9]='#74c476',
[10]='#a1d99b',
[11]='#c7e9c0',
[12]='#756bb1',
[13]='#9e9ac8',
[14]='#bcbddc',
[15]='#dadaeb',
[16]='#636363',
[17]='#969696',
[18]='#bdbdbd',
[19]='#d9d9d9'
}
}
sequences.dark = sequences.dark2
sequences.category = sequences.category10
sequences.set = sequences.set1
sequences.tableau = sequences.tableau10
local p = {}
function p._list(args)
local sequence = sequences[args.sequence] or sequences[args.s] or sequences.category10
local class1, class2 = '',''
if (args.class or '') ~= '' then
class1 = '<div class="' .. args.class .. '">\n'
class2 = '</div>'
end
output, i = {}, 1
for k, v in pairs(args) do
if tonumber(k) then
output[i] = (args.pre or '* ') .. '<' .. (args.tag or 'span') .. ' style="color:' .. sequence[math.mod( (i-1),(#sequence + 1))] .. ';' .. (args.style or '') .. '">' .. (v or '') .. '</' .. (args.tag or 'span') .. '>'
i = i + 1
end
end
return class1 .. table.concat( output,(args.sep or '\n') ) .. class2
end
function p.list(frame)
return p._list(frame:getParent().args[1] and frame:getParent().args or frame.args)
end
return p