Created page with "require('Module:No globals') local p = {} local cells = mw.loadData('Module:Tree chart/data') function p._main(cell_args) local ret = mw.html.create() local top = ret:tag..."
 
Fix Tree chart data: restore chart tile data (previous content duplicated the main module and caused a Lua stack overflow)
 
Line 1: Line 1:
require('Module:No globals')
local SLD = '1px solid'
local DSH = '1px dashed'
local DOT = '1px dotted'


local p = {}
local data = {
['!'] = {
t = { { attr = { rowspan = '2' }, style = { ['border-right'] = SLD, width = '1em', height = '2em' } },
{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
},
['%'] = {
b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } },
{ style = { width = '1em', height = '1em' } } },
t = { { style = { ['border-right'] = DSH, ['border-bottom'] = DSH, width = '1em', height = '1em' } },
{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
},
["'"] = {
b = { { style = { width = '1em', height = '1em' } } },
t = { { style = { ['border-right'] = SLD, ['border-bottom'] = SLD, width = '1em', height = '1em' } },
{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
},
['('] = {
b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } } },
t = { { style = { ['border-right'] = SLD, ['border-bottom'] = SLD, width = '1em', height = '1em' } },
{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
},
[')'] = {
b = { { style = { width = '1em', height = '1em' } } },
t = { { attr = { rowspan = '2' }, style = { ['border-right'] = SLD, width = '1em', height = '2em' } },
{ style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } } }
},
['*'] = {
b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } },
{ style = { width = '1em', height = '1em' } } },
t = { { style = { ['border-right'] = DSH, ['border-bottom'] = SLD, width = '1em', height = '1em' } },
{ style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } } }
},
['+'] = {
b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } },
{ style = { width = '1em', height = '1em' } } },
t = { { style = { ['border-right'] = SLD, ['border-bottom'] = SLD, width = '1em', height = '1em' } },
{ style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } } }
},
[','] = {
b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } },
{ style = { width = '1em', height = '1em' } } },
t = { { style = { width = '1em', height = '1em' } },
{ style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } } }
},
['-'] = {
b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
t = { { attr = { colspan = '2' }, style = { ['border-bottom'] = SLD, width = '2em', height = '1em' } } }
},
['.'] = {
b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } } },
t = { { style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } },
{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
},
['7'] = {
b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } } },
t = { { style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } },
{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
},
[':'] = {
t = { { attr = { rowspan = '2' }, style = { ['border-right'] = DSH, width = '1em', height = '2em' } },
{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
},
['A'] = {
b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
t = { { style = { ['border-right'] = DSH, ['border-bottom'] = DSH, width = '1em', height = '1em' } },
{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
},
['C'] = {
b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } } },
t = { { style = { ['border-right'] = DSH, ['border-bottom'] = DSH, width = '1em', height = '1em' } },
{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
},
['D'] = {
b = { { style = { width = '1em', height = '1em' } } },
t = { { attr = { rowspan = '2' }, style = { ['border-right'] = DSH, width = '1em', height = '2em' } },
{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
},
['E'] = {
b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } },
{ style = { width = '1em', height = '1em' } } },
t = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } },
{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
},
['F'] = {
b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } },
{ style = { width = '1em', height = '1em' } } },
t = { { style = { width = '1em', height = '1em' } },
{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
},
['G'] = {
b = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } } },
t = { { style = { ['border-right'] = DOT, ['border-bottom'] = DOT, width = '1em', height = '1em' } },
{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
},
['G2'] = {
b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } },
{ style = { width = '1em', height = '1em' } } },
t = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } },
{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
},
['H'] = {
b = { { style = { width = '1em', height = '1em' } } },
t = { { attr = { rowspan = '2' }, style = { ['border-right'] = DOT, width = '1em', height = '2em' } },
{ style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } } }
},
['J'] = {
b = { { style = { width = '1em', height = '1em' } } },
t = { { style = { ['border-right'] = DSH, ['border-bottom'] = DSH, width = '1em', height = '1em' } },
{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
},
['K'] = {
b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } } },
t = { { style = { ['border-right'] = DSH, ['border-bottom'] = DSH, width = '1em', height = '1em' } },
{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
},
['L'] = {
b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
t = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } },
{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
},
['M'] = {
b = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } },
{ style = { width = '1em', height = '1em' } } },
t = { { attr = { colspan = '2' }, style = { ['border-bottom'] = DOT, width = '2em', height = '1em' } } }
},
['P'] = {
b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
t = { { attr = { colspan = '2' }, style = { ['border-bottom'] = DOT, width = '2em', height = '1em' } } }
},
['Q'] = {
t = { { attr = { rowspan = '2' }, style = { ['border-right'] = DOT, width = '1em', height = '2em' } },
{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
},
['R'] = {
b = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } },
{ style = { width = '1em', height = '1em' } } },
t = { { style = { ['border-right'] = DOT, ['border-bottom'] = DOT, width = '1em', height = '1em' } },
{ style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } } }
},
['S'] = {
b = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } },
{ style = { width = '1em', height = '1em' } } },
t = { { style = { width = '1em', height = '1em' } },
{ style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } } }
},
['T3'] = {
b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } } },
t = { { style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } },
{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
},
['T2'] = {
b = { { style ={ ['border-right'] = DSH, width = '1em', height = '1em' } },
{ style =  { width = '1em', height = '1em' } } },
t = { { style = {  ['border-bottom'] = DSH, width = '1em', height = '1em' } },
{ style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } } }
},
['T'] = {
b = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } } },
t = { { style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } },
{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
},
['U'] = {
b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
t = { { style = { ['border-right'] = DSH, ['border-bottom'] = DSH, width = '1em', height = '1em' } },
{ style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } } }
},
['V'] = {
b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } },
{ style = { width = '1em', height = '1em' } } },
t = { { attr = { colspan = '2' }, style = { ['border-bottom'] = DSH, width = '2em', height = '1em' } } }
},
['W'] = {
b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
t = { { style = { ['border-right'] = DOT, ['border-bottom'] = DOT, width = '1em', height = '1em' } },
{ style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } } }
},
['X'] = {
b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } },
{ style = { width = '1em', height = '1em' } } },
t = { { style = { ['border-right'] = DSH, ['border-bottom'] = DSH, width = '1em', height = '1em' } },
{ style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } } }
},
['X2'] = {
b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } },
{ style = { width = '1em', height = '1em' } } },
t = { { style = { ['border-right'] = DSH, ['border-bottom'] = DSH, width = '1em', height = '1em' } },
{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
},
['Y'] = {
b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
t = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } },
{ style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } } }
},
['Z'] = {
b = { { style = { width = '1em', height = '1em' } } },
t = { { style = { ['border-right'] = DOT, ['border-bottom'] = DOT, width = '1em', height = '1em' } },
{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
},
['^'] = {
b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
t = { { style = { ['border-right'] = SLD, ['border-bottom'] = SLD, width = '1em', height = '1em' } },
{ style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } } }
},
['$'] = {
t = { { attr = { colspan = '2', rowspan = '2'}, style = { width = '2em', height = '2em' } } }
},
['`'] = {
b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
t = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } },
{ style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } } }
},
['a2'] = {
b = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } },
{ style = { width = '1em', height = '1em' } } },
t = { { style = { ['border-right'] = DOT, ['border-bottom'] = '1px dashed #000001', width = '1em', height = '1em' } },
{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
},
['a'] = {
b = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } },
{ style = { width = '1em', height = '1em' } } },
t = { { style = { ['border-right'] = DOT, ['border-bottom'] = SLD, width = '1em', height = '1em' } },
{ style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } } }
},
['b2'] = {
b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } },
{ style = { width = '1em', height = '1em' } } },
t = { { style = { ['border-right'] = DSH, ['border-bottom'] = '1px dotted #000001', width = '1em', height = '1em' } },
{ style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } } }
},
['b3'] = {
b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } },
{ style = { width = '1em', height = '1em' } } },
t = { { style = { ['border-right'] = SLD, ['border-bottom'] = DSH, width = '1em', height = '1em' } },
{ style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } } }
},
['b'] = {
b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } },
{ style = { width = '1em', height = '1em' } } },
t = { { style = { ['border-right'] = SLD, ['border-bottom'] = DOT, width = '1em', height = '1em' } },
{ style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } } }
},
['c'] = {
b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } } },
t = { { style = { ['border-right'] = DSH, ['border-bottom'] = SLD, width = '1em', height = '1em' } },
{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
},
['d'] = {
b = { { style = { width = '1em', height = '1em' } } },
t = { { attr = { rowspan = '2' }, style = { ['border-right'] = DSH, width = '1em', height = '2em' } },
{ style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } } }
},
['di'] = {
b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
t = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } },
{ style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } } }
},
['dj'] = {
b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } },
{ style = { width = '1em', height = '1em' } } },
t = { { style = { width = '1em', height = '1em' } },
{ style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } } }
},
['e'] = {
b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } } },
t = { { style = { ['border-right'] = SLD, ['border-bottom'] = DSH, width = '1em', height = '1em' } },
{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
},
['f'] = {
b = { { style = { width = '1em', height = '1em' } } },
t = { { attr = { rowspan = '2' }, style = { ['border-right'] = SLD, width = '1em', height = '2em' } },
{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
},
['fh'] = {
b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
t = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } },
{ style = { ['border-bottom'] =DSH, width = '1em', height = '1em' } } }
},
['fy'] = {
b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } },
{ style = { width = '1em', height = '1em' } } },
t = { { style = { width = '1em', height = '1em' } },
{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
},
['h'] = {
b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
t = { { style = { ['border-right'] = SLD, ['border-bottom'] = DSH, width = '1em', height = '1em' } },
{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
},
['he'] = {
b = { { style = { width = '1em', height = '1em' } } },
t = { { style = { ['border-right'] = SLD, ['border-bottom'] = DSH, width = '1em', height = '1em' } },
{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
},
['i'] = {
b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
t = { { style = { ['border-right'] = DSH, ['border-bottom'] = SLD, width = '1em', height = '1em' } },
{ style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } } }
},
['ic'] = {
b = { { style = { width = '1em', height = '1em' } } },
t = { { style = { ['border-right'] = DSH, ['border-bottom'] = SLD, width = '1em', height = '1em' } },
{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
},
['j'] = {
b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } },
{ style = { width = '1em', height = '1em' } } },
t = { { attr = { colspan = '2' }, style = { ['border-bottom'] = SLD, width = '2em', height = '1em' } } }
},
['jc'] = {
b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } } },
t = { { style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } },
{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
},
['k2'] = {
b = { { style = { width = '1em', height = '1em' } } },
t = { { attr = { rowspan = '2' }, style = { ['border-right'] = DOT, width = '1em', height = '2em' } },
{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
},
['k3'] = {
b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } },
{ style = { width = '1em', height = '1em' } } },
t = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } },
{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
},
['k'] = {
b = { { style = { width = '1em', height = '1em' } } },
t = { { attr = { rowspan = '2' }, style = { ['border-right'] = DOT, width = '1em', height = '2em' } },
{ style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } } }
},
['kq'] = {
b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
t = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } },
{ style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } } }
},
['kr'] = {
b = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } },
{ style = { width = '1em', height = '1em' } } },
t = { { style = { width = '1em', height = '1em' } },
{ style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } } }
},
['kq2'] = {
b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
t = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } },
{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
},
['kr2'] = {
b = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } },
{ style = { width = '1em', height = '1em' } } },
t = { { style = { width = '1em', height = '1em' } },
{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
},
['l2'] = {
b = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } } },
t = { { style = { ['border-right'] = DOT, ['border-bottom'] = '1px dashed #000001', width = '1em', height = '1em' } },
{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
},
['l3'] = {
b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } } },
t = { { style = { ['border-right'] = SLD, ['border-bottom'] = SLD, width = '1em', height = '1em' } },
{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
},
['l4'] = {
b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } } },
t = { { style = { ['border-right'] = SLD, ['border-bottom'] = DSH, width = '1em', height = '1em' } },
{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
},
['l'] = {
b = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } } },
t = { { style = { ['border-right'] = DOT, ['border-bottom'] = SLD, width = '1em', height = '1em' } },
{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
},
['m2'] = {
b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } },
{ style = { width = '1em', height = '1em' } } },
t = { { attr = { colspan = '2' }, style = { ['border-bottom'] = DOT, width = '2em', height = '1em' } } }
},
['m'] = {
b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } },
{ style = { width = '1em', height = '1em' } } },
t = { { attr = { colspan = '2' }, style = { ['border-bottom'] = DOT, width = '2em', height = '1em' } } }
},
['mp'] = {
b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } } },
t = { { style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } },
{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
},
['mp2'] = {
b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } } },
t = { { style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } },
{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
},
['n2'] = {
b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
t = { { style = { ['border-right'] = DSH, ['border-bottom'] = '1px dotted #000001', width = '1em', height = '1em' } },
{ style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } } }
},
['n'] = {
b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
t = { { style = { ['border-right'] = SLD, ['border-bottom'] = DOT, width = '1em', height = '1em' } },
{ style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } } }
},
['np'] = {
b = { { style = { width = '1em', height = '1em' } } },
t = { { style = { ['border-right'] = SLD, ['border-bottom'] = DOT, width = '1em', height = '1em' } },
{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
},
['np2'] = {
b = { { style = { width = '1em', height = '1em' } } },
t = { { style = { ['border-right'] = DSH, ['border-bottom'] = DOT, width = '1em', height = '1em' } },
{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
},
['o2'] = {
b = { { style = { width = '1em', height = '1em' } } },
t = { { attr = { rowspan = '2' }, style = { ['border-right'] = DSH, width = '1em', height = '2em' } },
{ style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } } }
},
['o'] = {
b = { { style = { width = '1em', height = '1em' } } },
t = { { attr = { rowspan = '2' }, style = { ['border-right'] = SLD, width = '1em', height = '2em' } },
{ style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } } }
},
['om'] = {
b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } },
{ style = { width = '1em', height = '1em' } } },
t = { { style = { width = '1em', height = '1em' } },
{ style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } } }
},
['om2'] = {
b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } },
{ style = { width = '1em', height = '1em' } } },
t = { { style = { width = '1em', height = '1em' } },
{ style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } } }
},
['on'] = {
b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
t = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } },
{ style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } } }
},
['on2'] = {
b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
t = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } },
{ style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } } }
},
['p2'] = {
b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } } },
t = { { style = { ['border-right'] = DSH, ['border-bottom'] = '1px dotted #000001', width = '1em', height = '1em' } },
{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
},
['p'] = {
b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } } },
t = { { style = { ['border-right'] = SLD, ['border-bottom'] = DOT, width = '1em', height = '1em' } },
{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
},
['q2'] = {
b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
t = { { style = { ['border-right'] = DOT, ['border-bottom'] = '1px dashed #000001', width = '1em', height = '1em' } },
{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
},
['q'] = {
b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
t = { { style = { ['border-right'] = DOT, ['border-bottom'] = SLD, width = '1em', height = '1em' } },
{ style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } } }
},
['ql'] = {
b = { { style = { width = '1em', height = '1em' } } },
t = { { style = { ['border-right'] = DOT, ['border-bottom'] = SLD, width = '1em', height = '1em' } },
{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
},
['ql2'] = {
b = { { style = { width = '1em', height = '1em' } } },
t = { { style = { ['border-right'] = DOT, ['border-bottom'] =DSH, width = '1em', height = '1em' } },
{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
},
['r2'] = {
b = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } },
{ style = { width = '1em', height = '1em' } } },
t = { { attr = { colspan = '2' }, style = { ['border-bottom'] = DSH, width = '2em', height = '1em' } } }
},
['r'] = {
b = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } },
{ style = { width = '1em', height = '1em' } } },
t = { { attr = { colspan = '2' }, style = { ['border-bottom'] = SLD, width = '2em', height = '1em' } } }
},
['rl'] = {
b = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } } },
t = { { style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } },
{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
},
['rl2'] = {
b = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } } },
t = { { style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } },
{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
},
['t'] = {
b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } },
{ style = { width = '1em', height = '1em' } } },
t = { { style = { ['border-right'] = SLD, ['border-bottom'] = DSH, width = '1em', height = '1em' } },
{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
},
['v'] = {
b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } },
{ style = { width = '1em', height = '1em' } } },
t = { { attr = { colspan = '2' }, style = { ['border-bottom'] = SLD, width = '2em', height = '1em' } } }
},
['x'] = {},
['y'] = {
b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } },
{ style = { width = '1em', height = '1em' } } },
t = { { attr = { colspan = '2' }, style = { ['border-bottom'] = DSH, width = '2em', height = '1em' } } }
},
['ye'] = {
b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } } },
t = { { style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } },
{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
},
['~'] = {
b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
t = { { attr = { colspan = '2' }, style = { ['border-bottom'] = DSH, width = '2em', height = '1em' } } }
}
}


local cells = mw.loadData('Module:Tree chart/data')
local retval = {}


function p._main(cell_args)
for k,v in pairs(data) do
local ret = mw.html.create()
retval[k] = {}
local top = ret:tag('tr')
for k2,v2 in pairs(v) do
:css{ height = '1px',
local renderedCells = mw.html.create()
['text-align'] = 'center' }
for k3,v3 in ipairs(v2) do
local bottom = ret:tag('tr')
renderedCells:tag('td'):css(v3.style or {}):attr(v3.attr or {})
:css{ height = '1px',
['text-align'] = 'center' }
for _, v in ipairs(cell_args) do
if type(v) == 'string' then
top:wikitext(cells[v].t)
bottom:wikitext(cells[v].b)
else
top:tag('td')
:attr{ colspan = v.colspan or cell_args.colspan or 6,
rowspan = v.rowspan or cell_args.rowspan or 2 }
:css{ padding = '0.2em',
border = (v.border or cell_args.border or '2') .. 'px solid black' }
:cssText(v.boxstyle or cell_args.boxstyle)
:wikitext(v.text)
end
end
retval[k][k2] = tostring(renderedCells)
end
end
return tostring(ret)
end
end


function p.main(frame)
return retval
local args = require('Module:Arguments').getArgs(frame, {wrappers = 'Template:Tree chart', trim = false, removeBlanks = false})
local cell_args = {
colspan = args.colspan,
rowspan = args.rowspan,
border = args.border,
boxstyle = args.boxstyle
}
for _, val in ipairs(args) do
local trimmedVal = val:match('^%s*(.-)%s*$')
if trimmedVal == '' then
trimmedVal = '$'
end
if cells[trimmedVal] then
table.insert(cell_args, trimmedVal)
else
-- Unnamed params behave weirdly
-- white space at the front counts for param_{{{1}}}, but not whitespace at the end, so remove it
local rightTrimmedVal = val:gsub('%s+$','')
table.insert(cell_args, {
text = args[trimmedVal] or ('{{{'..trimmedVal..'}}}'),
colspan = args['colspan_'..rightTrimmedVal],
rowspan = args['rowspan_'..rightTrimmedVal],
border = args['border_'..rightTrimmedVal],
boxstyle = args['boxstyle_'..rightTrimmedVal]
})
end
end
return p._main(cell_args)
end
 
return p

Latest revision as of 12:51, 25 October 2026

Documentation for this module may be created at Module:Tree chart/data/doc

local SLD = '1px solid'
local DSH = '1px dashed'
local DOT = '1px dotted'

local data = {
	['!'] = {
		t = { { attr = { rowspan = '2' }, style = { ['border-right'] = SLD, width = '1em', height = '2em' } },
			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
			},
	['%'] = {
		b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } },
			{ style = { width = '1em', height = '1em' } } },
		t = { { style = { ['border-right'] = DSH, ['border-bottom'] = DSH, width = '1em', height = '1em' } },
			{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
			},
	["'"] = {
		b = { { style = { width = '1em', height = '1em' } } },
		t = { { style = { ['border-right'] = SLD, ['border-bottom'] = SLD, width = '1em', height = '1em' } },
			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
			},
	['('] = {
		b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } } },
		t = { { style = { ['border-right'] = SLD, ['border-bottom'] = SLD, width = '1em', height = '1em' } },
			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
			},
	[')'] = {
		b = { { style = { width = '1em', height = '1em' } } },
		t = { { attr = { rowspan = '2' }, style = { ['border-right'] = SLD, width = '1em', height = '2em' } },
			{ style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } } }
			},
	['*'] = {
		b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } },
			{ style = { width = '1em', height = '1em' } } },
		t = { { style = { ['border-right'] = DSH, ['border-bottom'] = SLD, width = '1em', height = '1em' } },
			{ style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } } }
			},
	['+'] = {
		b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } },
			{ style = { width = '1em', height = '1em' } } },
		t = { { style = { ['border-right'] = SLD, ['border-bottom'] = SLD, width = '1em', height = '1em' } },
			{ style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } } }
			},
	[','] = {
		b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } },
			{ style = { width = '1em', height = '1em' } } },
		t = { { style = { width = '1em', height = '1em' } },
			{ style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } } }
			},
	['-'] = {
		b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
		t = { { attr = { colspan = '2' }, style = { ['border-bottom'] = SLD, width = '2em', height = '1em' } } }
			},
	['.'] = {
		b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } } },
		t = { { style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } },
			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
			},
	['7'] = {
		b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } } },
		t = { { style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } },
			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
			},
	[':'] = {
		t = { { attr = { rowspan = '2' }, style = { ['border-right'] = DSH, width = '1em', height = '2em' } },
			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
			},
	['A'] = {
		b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
		t = { { style = { ['border-right'] = DSH, ['border-bottom'] = DSH, width = '1em', height = '1em' } },
			{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
			},
	['C'] = {
		b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } } },
		t = { { style = { ['border-right'] = DSH, ['border-bottom'] = DSH, width = '1em', height = '1em' } },
			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
			},
	['D'] = {
		b = { { style = { width = '1em', height = '1em' } } },
		t = { { attr = { rowspan = '2' }, style = { ['border-right'] = DSH, width = '1em', height = '2em' } },
			{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
			},
	['E'] = {
		b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } },
			{ style = { width = '1em', height = '1em' } } },
		t = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } },
			{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
			},
	['F'] = {
		b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } },
			{ style = { width = '1em', height = '1em' } } },
		t = { { style = { width = '1em', height = '1em' } },
			{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
			},
	['G'] = {
		b = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } } },
		t = { { style = { ['border-right'] = DOT, ['border-bottom'] = DOT, width = '1em', height = '1em' } },
			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
			},
	['G2'] = {
		b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } },
			{ style = { width = '1em', height = '1em' } } },
		t = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } },
			{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
			},
	['H'] = {
		b = { { style = { width = '1em', height = '1em' } } },
		t = { { attr = { rowspan = '2' }, style = { ['border-right'] = DOT, width = '1em', height = '2em' } },
			{ style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } } }
			},
	['J'] = {
		b = { { style = { width = '1em', height = '1em' } } },
		t = { { style = { ['border-right'] = DSH, ['border-bottom'] = DSH, width = '1em', height = '1em' } },
			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
			},
	['K'] = {
		b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } } },
		t = { { style = { ['border-right'] = DSH, ['border-bottom'] = DSH, width = '1em', height = '1em' } },
			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
			},
	['L'] = {
		b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
		t = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } },
			{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
			},
	['M'] = {
		b = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } },
			{ style = { width = '1em', height = '1em' } } },
		t = { { attr = { colspan = '2' }, style = { ['border-bottom'] = DOT, width = '2em', height = '1em' } } }
			},
	['P'] = {
		b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
		t = { { attr = { colspan = '2' }, style = { ['border-bottom'] = DOT, width = '2em', height = '1em' } } }
			},
	['Q'] = {
		t = { { attr = { rowspan = '2' }, style = { ['border-right'] = DOT, width = '1em', height = '2em' } },
			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
			},
	['R'] = {
		b = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } },
			{ style = { width = '1em', height = '1em' } } },
		t = { { style = { ['border-right'] = DOT, ['border-bottom'] = DOT, width = '1em', height = '1em' } },
			{ style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } } }
			},
	['S'] = {
		b = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } },
			{ style = { width = '1em', height = '1em' } } },
		t = { { style = { width = '1em', height = '1em' } },
			{ style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } } }
			},
	['T3'] = {
		b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } } },
		t = { { style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } },
			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
			},
	['T2'] = {
		b = { { style ={ ['border-right'] = DSH, width = '1em', height = '1em' } },
			{ style =  { width = '1em', height = '1em' } } },
		t = { { style = {  ['border-bottom'] = DSH, width = '1em', height = '1em' } },
			{ style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } } }
			},
	['T'] = {
		b = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } } },
		t = { { style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } },
			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
			},
	['U'] = {
		b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
		t = { { style = { ['border-right'] = DSH, ['border-bottom'] = DSH, width = '1em', height = '1em' } },
			{ style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } } }
			},
	['V'] = {
		b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } },
			{ style = { width = '1em', height = '1em' } } },
		t = { { attr = { colspan = '2' }, style = { ['border-bottom'] = DSH, width = '2em', height = '1em' } } }
			},
	['W'] = {
		b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
		t = { { style = { ['border-right'] = DOT, ['border-bottom'] = DOT, width = '1em', height = '1em' } },
			{ style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } } }
			},
	['X'] = {
		b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } },
			{ style = { width = '1em', height = '1em' } } },
		t = { { style = { ['border-right'] = DSH, ['border-bottom'] = DSH, width = '1em', height = '1em' } },
			{ style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } } }
			},
	['X2'] = {
		b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } },
			{ style = { width = '1em', height = '1em' } } },
		t = { { style = { ['border-right'] = DSH, ['border-bottom'] = DSH, width = '1em', height = '1em' } },
			{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
			},
	['Y'] = {
		b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
		t = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } },
			{ style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } } }
			},
	['Z'] = {
		b = { { style = { width = '1em', height = '1em' } } },
		t = { { style = { ['border-right'] = DOT, ['border-bottom'] = DOT, width = '1em', height = '1em' } },
			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
			},
	['^'] = {
		b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
		t = { { style = { ['border-right'] = SLD, ['border-bottom'] = SLD, width = '1em', height = '1em' } },
			{ style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } } }
			},
	['$'] = {
		t = { { attr = { colspan = '2', rowspan = '2'}, style = { width = '2em', height = '2em' } } }
			},
	['`'] = {
		b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
		t = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } },
			{ style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } } }
			},
	['a2'] = {
		b = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } },
			{ style = { width = '1em', height = '1em' } } },
		t = { { style = { ['border-right'] = DOT, ['border-bottom'] = '1px dashed #000001', width = '1em', height = '1em' } },
			{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
			},
	['a'] = {
		b = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } },
			{ style = { width = '1em', height = '1em' } } },
		t = { { style = { ['border-right'] = DOT, ['border-bottom'] = SLD, width = '1em', height = '1em' } },
			{ style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } } }
			},
	['b2'] = {
		b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } },
			{ style = { width = '1em', height = '1em' } } },
		t = { { style = { ['border-right'] = DSH, ['border-bottom'] = '1px dotted #000001', width = '1em', height = '1em' } },
			{ style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } } }
			},
	['b3'] = {
		b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } },
			{ style = { width = '1em', height = '1em' } } },
		t = { { style = { ['border-right'] = SLD, ['border-bottom'] = DSH, width = '1em', height = '1em' } },
			{ style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } } }
			},
	['b'] = {
		b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } },
			{ style = { width = '1em', height = '1em' } } },
		t = { { style = { ['border-right'] = SLD, ['border-bottom'] = DOT, width = '1em', height = '1em' } },
			{ style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } } }
			},
	['c'] = {
		b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } } },
		t = { { style = { ['border-right'] = DSH, ['border-bottom'] = SLD, width = '1em', height = '1em' } },
			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
			},
	['d'] = {
		b = { { style = { width = '1em', height = '1em' } } },
		t = { { attr = { rowspan = '2' }, style = { ['border-right'] = DSH, width = '1em', height = '2em' } },
			{ style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } } }
			},
	['di'] = {
		b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
		t = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } },
			{ style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } } }
			},
	['dj'] = {
		b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } },
			{ style = { width = '1em', height = '1em' } } },
		t = { { style = { width = '1em', height = '1em' } },
			{ style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } } }
			},
	['e'] = {
		b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } } },
		t = { { style = { ['border-right'] = SLD, ['border-bottom'] = DSH, width = '1em', height = '1em' } },
			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
			},
	['f'] = {
		b = { { style = { width = '1em', height = '1em' } } },
		t = { { attr = { rowspan = '2' }, style = { ['border-right'] = SLD, width = '1em', height = '2em' } },
			{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
			},
	['fh'] = {
		b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
		t = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } },
			{ style = { ['border-bottom'] =DSH, width = '1em', height = '1em' } } }
			},
	['fy'] = {
		b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } },
			{ style = { width = '1em', height = '1em' } } },
		t = { { style = { width = '1em', height = '1em' } },
			{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
			},
	['h'] = {
		b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
		t = { { style = { ['border-right'] = SLD, ['border-bottom'] = DSH, width = '1em', height = '1em' } },
			{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
			},
	['he'] = {
		b = { { style = { width = '1em', height = '1em' } } },
		t = { { style = { ['border-right'] = SLD, ['border-bottom'] = DSH, width = '1em', height = '1em' } },
			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
			},
	['i'] = {
		b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
		t = { { style = { ['border-right'] = DSH, ['border-bottom'] = SLD, width = '1em', height = '1em' } },
			{ style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } } }
			},
	['ic'] = {
		b = { { style = { width = '1em', height = '1em' } } },
		t = { { style = { ['border-right'] = DSH, ['border-bottom'] = SLD, width = '1em', height = '1em' } },
			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
			},
	['j'] = {
		b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } },
			{ style = { width = '1em', height = '1em' } } },
		t = { { attr = { colspan = '2' }, style = { ['border-bottom'] = SLD, width = '2em', height = '1em' } } }
			},
	['jc'] = {
		b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } } },
		t = { { style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } },
			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
			},
	['k2'] = {
		b = { { style = { width = '1em', height = '1em' } } },
		t = { { attr = { rowspan = '2' }, style = { ['border-right'] = DOT, width = '1em', height = '2em' } },
			{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
			},
	['k3'] = {
		b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } },
			{ style = { width = '1em', height = '1em' } } },
		t = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } },
			{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
			},
	['k'] = {
		b = { { style = { width = '1em', height = '1em' } } },
		t = { { attr = { rowspan = '2' }, style = { ['border-right'] = DOT, width = '1em', height = '2em' } },
			{ style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } } }
			},
	['kq'] = {
		b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
		t = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } },
			{ style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } } }
			},
	['kr'] = {
		b = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } },
			{ style = { width = '1em', height = '1em' } } },
		t = { { style = { width = '1em', height = '1em' } },
			{ style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } } }
			},
	['kq2'] = {
		b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
		t = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } },
			{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
			},
	['kr2'] = {
		b = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } },
			{ style = { width = '1em', height = '1em' } } },
		t = { { style = { width = '1em', height = '1em' } },
			{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
			},
	['l2'] = {
		b = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } } },
		t = { { style = { ['border-right'] = DOT, ['border-bottom'] = '1px dashed #000001', width = '1em', height = '1em' } },
			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
			},
	['l3'] = {
		b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } } },
		t = { { style = { ['border-right'] = SLD, ['border-bottom'] = SLD, width = '1em', height = '1em' } },
			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
			},
	['l4'] = {
		b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } } },
		t = { { style = { ['border-right'] = SLD, ['border-bottom'] = DSH, width = '1em', height = '1em' } },
			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
			},
	['l'] = {
		b = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } } },
		t = { { style = { ['border-right'] = DOT, ['border-bottom'] = SLD, width = '1em', height = '1em' } },
			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
			},
	['m2'] = {
		b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } },
			{ style = { width = '1em', height = '1em' } } },
		t = { { attr = { colspan = '2' }, style = { ['border-bottom'] = DOT, width = '2em', height = '1em' } } }
			},
	['m'] = {
		b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } },
			{ style = { width = '1em', height = '1em' } } },
		t = { { attr = { colspan = '2' }, style = { ['border-bottom'] = DOT, width = '2em', height = '1em' } } }
			},
	['mp'] = {
		b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } } },
		t = { { style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } },
			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
			},
	['mp2'] = {
		b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } } },
		t = { { style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } },
			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
			},
	['n2'] = {
		b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
		t = { { style = { ['border-right'] = DSH, ['border-bottom'] = '1px dotted #000001', width = '1em', height = '1em' } },
			{ style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } } }
			},
	['n'] = {
		b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
		t = { { style = { ['border-right'] = SLD, ['border-bottom'] = DOT, width = '1em', height = '1em' } },
			{ style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } } }
			},
	['np'] = {
		b = { { style = { width = '1em', height = '1em' } } },
		t = { { style = { ['border-right'] = SLD, ['border-bottom'] = DOT, width = '1em', height = '1em' } },
			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
			},
	['np2'] = {
		b = { { style = { width = '1em', height = '1em' } } },
		t = { { style = { ['border-right'] = DSH, ['border-bottom'] = DOT, width = '1em', height = '1em' } },
			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
			},
	['o2'] = {
		b = { { style = { width = '1em', height = '1em' } } },
		t = { { attr = { rowspan = '2' }, style = { ['border-right'] = DSH, width = '1em', height = '2em' } },
			{ style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } } }
			},
	['o'] = {
		b = { { style = { width = '1em', height = '1em' } } },
		t = { { attr = { rowspan = '2' }, style = { ['border-right'] = SLD, width = '1em', height = '2em' } },
			{ style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } } }
			},
	['om'] = {
		b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } },
			{ style = { width = '1em', height = '1em' } } },
		t = { { style = { width = '1em', height = '1em' } },
			{ style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } } }
			},
	['om2'] = {
		b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } },
			{ style = { width = '1em', height = '1em' } } },
		t = { { style = { width = '1em', height = '1em' } },
			{ style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } } }
			},
	['on'] = {
		b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
		t = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } },
			{ style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } } }
			},
	['on2'] = {
		b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
		t = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } },
			{ style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } } }
			},
	['p2'] = {
		b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } } },
		t = { { style = { ['border-right'] = DSH, ['border-bottom'] = '1px dotted #000001', width = '1em', height = '1em' } },
			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
			},
	['p'] = {
		b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } } },
		t = { { style = { ['border-right'] = SLD, ['border-bottom'] = DOT, width = '1em', height = '1em' } },
			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
			},
	['q2'] = {
		b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
		t = { { style = { ['border-right'] = DOT, ['border-bottom'] = '1px dashed #000001', width = '1em', height = '1em' } },
			{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
			},
	['q'] = {
		b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
		t = { { style = { ['border-right'] = DOT, ['border-bottom'] = SLD, width = '1em', height = '1em' } },
			{ style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } } }
			},
	['ql'] = {
		b = { { style = { width = '1em', height = '1em' } } },
		t = { { style = { ['border-right'] = DOT, ['border-bottom'] = SLD, width = '1em', height = '1em' } },
			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
			},
	['ql2'] = {
		b = { { style = { width = '1em', height = '1em' } } },
		t = { { style = { ['border-right'] = DOT, ['border-bottom'] =DSH, width = '1em', height = '1em' } },
			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
			},
	['r2'] = {
		b = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } },
			{ style = { width = '1em', height = '1em' } } },
		t = { { attr = { colspan = '2' }, style = { ['border-bottom'] = DSH, width = '2em', height = '1em' } } }
			},
	['r'] = {
		b = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } },
			{ style = { width = '1em', height = '1em' } } },
		t = { { attr = { colspan = '2' }, style = { ['border-bottom'] = SLD, width = '2em', height = '1em' } } }
			},
	['rl'] = {
		b = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } } },
		t = { { style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } },
			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
			},
	['rl2'] = {
		b = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } } },
		t = { { style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } },
			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
			},
	['t'] = {
		b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } },
			{ style = { width = '1em', height = '1em' } } },
		t = { { style = { ['border-right'] = SLD, ['border-bottom'] = DSH, width = '1em', height = '1em' } },
			{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
			},
	['v'] = {
		b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } },
			{ style = { width = '1em', height = '1em' } } },
		t = { { attr = { colspan = '2' }, style = { ['border-bottom'] = SLD, width = '2em', height = '1em' } } }
			},
	['x'] = {},
	['y'] = {
		b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } },
			{ style = { width = '1em', height = '1em' } } },
		t = { { attr = { colspan = '2' }, style = { ['border-bottom'] = DSH, width = '2em', height = '1em' } } }
			},
	['ye'] = {
		b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } } },
		t = { { style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } },
			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
			},
	['~'] = {
		b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
		t = { { attr = { colspan = '2' }, style = { ['border-bottom'] = DSH, width = '2em', height = '1em' } } }
			}
}

local retval = {}

for k,v in pairs(data) do
	retval[k] = {}
	for k2,v2 in pairs(v) do
		local renderedCells = mw.html.create()
		for k3,v3 in ipairs(v2) do
			renderedCells:tag('td'):css(v3.style or {}):attr(v3.attr or {})
		end
		retval[k][k2] = tostring(renderedCells)
	end
end

return retval