Module:Familytree/elements

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

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' } } } },	['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' } } } },	['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' } } } },	['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' } } } },	['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' } } } },	['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' } } } },	['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' } } } },	['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' } } } },	['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' } } } },	['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' } } } },	['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' } } } },	['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' } } } },	['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' } } } },	['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' } } } },	['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' } } } },	['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' } } } },	['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' } } } },	['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' } } } },	['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' } } } },	['~'] = {		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