Module:Colored list
From CryptoWiki
Documentation for this module may be created at Module:Colored list/doc
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