Module:Familytree/elements

local SLD = '1px solid #808080' local DSH = '1px dashed #808080' local data = { ['$'] = {		t = { { attr = { colspan = '2', rowspan = '2'}, style = { width = '2em', height = '2em' } } } },	['-'] = {		b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } }, t = { { attr = { colspan = '2' }, style = { ['border-bottom'] = SLD, 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' } } } },	['!'] = {		t = { { attr = { rowspan = '2' }, style = { ['border-right'] = SLD, width = '1em', height = '2em' } }, { 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' } } } },	[','] = {		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 = { { 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' } } } },	['`'] = {		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' } } } },	["'"] = {		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' } } } },	['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' } } } },	['^'] = {		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' } } } },	[')'] = {		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'] = 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 = { ['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' } } } },	['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' } } } },	['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' } } } },	['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' } } } },	['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' } } } },	['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' } } } },	['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' } } } },	['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' } } } },	['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' } } } },	['%'] = {		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' } } } },	['r'] = { 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' } } } },	['n'] = { 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' } } } },	['c'] = { 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' } } } },	['j'] = { 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' } } } },	['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' } } } },	['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' } } } },	[']'] = {		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' } } } },	['['] = {		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' } } } },	['#'] = {		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' } } } },	['p'] = { 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' } } } },	['q'] = { 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' } } } },	['b'] = { 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' } } } },	['d'] = { 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' } } } },	['u'] = { 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' } } } },	['t'] = { 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' } } } },	['E'] = { 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' } } } },	['3'] = {		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' } } } },	['*'] = {		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' } } } }, } 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