Module:Tree chart
Appearance
![]() | This Lua module is used on approximately 9,900 pages and changes may be widely noticed. Test changes in the module's /sandbox or /testcases subpages, or in your own module sandbox. Consider discussing changes on the talk page before implementing them. |
Usage
Implements Template:Tree chart; Full documentation on chart syntax exists at Template:Tree chart/doc
This module uses the mw.html library to create rows of table cells whose borders draw lines to show relationships between elements. When an unnamed parameter matches a key in Module:Tree chart/data, the module will create a block with stylings as defined in the table. Each key in the table has a subtable with 0, 1, or 2 keys of its own: t
for the "top" row and b
for the "bottom row". Any unnamed parameter whose value does not exist in the table will be used to create elements on the chart, and additional named parameters for that value will be looked for.
local p = {}
local SLD = '1px solid black'
local DSH = '1px dashed black'
local DOT = '1px dotted black'
local cells = {
['!'] = {
b = { },
t = { { tag = 'td', attr = { rowspan = '2' }, style = { ['border-right'] = SLD, ['width'] = '1em', ['height'] = '2em' } }, { tag = 'td', attr = { rowspan = '2' }, style = { ['width'] = '1em', ['height'] = '2em' } } }
},
['%'] = {
b = { { tag = 'td', style = { ['border-right'] = DSH, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', style = { ['border-right'] = DSH, ['border-bottom'] = DSH, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['border-bottom'] = DSH, ['width'] = '1em', ['height'] = '1em' } } }
},
['\''] = {
b = { { tag = 'td', style = { ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', style = { ['border-right'] = SLD, ['border-bottom'] = SLD, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', attr = { rowspan = '2' }, style = { ['width'] = '1em', ['height'] = '2em' } } }
},
['('] = {
b = { { tag = 'td', style = { ['border-right'] = SLD, ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', style = { ['border-right'] = SLD, ['border-bottom'] = SLD, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', attr = { rowspan = '2' }, style = { ['width'] = '1em', ['height'] = '2em' } } }
},
[')'] = {
b = { { tag = 'td', style = { ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', attr = { rowspan = '2' }, style = { ['border-right'] = SLD, ['width'] = '1em', ['height'] = '2em' } }, { tag = 'td', style = { ['border-bottom'] = SLD, ['width'] = '1em', ['height'] = '1em' } } }
},
['*'] = {
b = { { tag = 'td', style = { ['border-right'] = DSH, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', style = { ['border-right'] = DSH, ['border-bottom'] = SLD, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['border-bottom'] = SLD, ['width'] = '1em', ['height'] = '1em' } } }
},
['+'] = {
b = { { tag = 'td', style = { ['border-right'] = SLD, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', style = { ['border-right'] = SLD, ['border-bottom'] = SLD, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['border-bottom'] = SLD, ['width'] = '1em', ['height'] = '1em' } } }
},
[','] = {
b = { { tag = 'td', style = { ['border-right'] = SLD, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', style = { ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['border-bottom'] = SLD, ['width'] = '1em', ['height'] = '1em' } } }
},
['-'] = {
b = { { tag = 'td', attr = { colspan = '2' }, style = { ['width'] = '2em', ['height'] = '1em' } } },
t = { { tag = 'td', attr = { colspan = '2' }, style = { ['border-bottom'] = SLD, ['width'] = '2em', ['height'] = '1em' } } }
},
['.'] = {
b = { { tag = 'td', style = { ['border-right'] = SLD, ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', style = { ['border-bottom'] = SLD, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', attr = { rowspan = '2' }, style = { ['width'] = '1em', ['height'] = '2em' } } }
},
['7'] = {
b = { { tag = 'td', style = { ['border-right'] = DSH, ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', style = { ['border-bottom'] = DSH, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', attr = { rowspan = '2' }, style = { ['width'] = '1em', ['height'] = '2em' } } }
},
[':'] = {
b = { },
t = { { tag = 'td', attr = { rowspan = '2' }, style = { ['border-right'] = DSH, ['width'] = '1em', ['height'] = '2em' } }, { tag = 'td', attr = { rowspan = '2' }, style = { ['width'] = '1em', ['height'] = '2em' } } }
},
['A'] = {
b = { { tag = 'td', attr = { colspan = '2' }, style = { ['width'] = '2em', ['height'] = '1em' } } },
t = { { tag = 'td', style = { ['border-right'] = DSH, ['border-bottom'] = DSH, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['border-bottom'] = DSH, ['width'] = '1em', ['height'] = '1em' } } }
},
['C'] = {
b = { { tag = 'td', style = { ['border-right'] = DSH, ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', style = { ['border-right'] = DSH, ['border-bottom'] = DSH, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', attr = { rowspan = '2' }, style = { ['width'] = '1em', ['height'] = '2em' } } }
},
['D'] = {
b = { { tag = 'td', style = { ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', attr = { rowspan = '2' }, style = { ['border-right'] = DSH, ['width'] = '1em', ['height'] = '2em' } }, { tag = 'td', style = { ['border-bottom'] = DSH, ['width'] = '1em', ['height'] = '1em' } } }
},
['F'] = {
b = { { tag = 'td', style = { ['border-right'] = DSH, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', style = { ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['border-bottom'] = DSH, ['width'] = '1em', ['height'] = '1em' } } }
},
['G'] = {
b = { { tag = 'td', style = { ['border-right'] = DOT, ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', style = { ['border-right'] = DOT, ['border-bottom'] = DOT, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', attr = { rowspan = '2' }, style = { ['width'] = '1em', ['height'] = '2em' } } }
},
['H'] = {
b = { { tag = 'td', style = { ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', attr = { rowspan = '2' }, style = { ['border-right'] = DOT, ['width'] = '1em', ['height'] = '2em' } }, { tag = 'td', style = { ['border-bottom'] = DOT, ['width'] = '1em', ['height'] = '1em' } } }
},
['J'] = {
b = { { tag = 'td', style = { ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', style = { ['border-right'] = DSH, ['border-bottom'] = DSH, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', attr = { rowspan = '2' }, style = { ['width'] = '1em', ['height'] = '2em' } } }
},
['L'] = {
b = { { tag = 'td', attr = { colspan = '2' }, style = { ['width'] = '2em', ['height'] = '1em' } } },
t = { { tag = 'td', style = { ['border-right'] = DSH, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['border-bottom'] = DSH, ['width'] = '1em', ['height'] = '1em' } } }
},
['M'] = {
b = { { tag = 'td', style = { ['border-right'] = DOT, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', attr = { colspan = '2' }, style = { ['border-bottom'] = DOT, ['width'] = '2em', ['height'] = '1em' } } }
},
['P'] = {
b = { { tag = 'td', attr = { colspan = '2' }, style = { ['width'] = '2em', ['height'] = '1em' } } },
t = { { tag = 'td', attr = { colspan = '2' }, style = { ['border-bottom'] = DOT, ['width'] = '2em', ['height'] = '1em' } } }
},
['Q'] = {
b = { },
t = { { tag = 'td', attr = { rowspan = '2' }, style = { ['border-right'] = DOT, ['width'] = '1em', ['height'] = '2em' } }, { tag = 'td', attr = { rowspan = '2' }, style = { ['width'] = '1em', ['height'] = '2em' } } }
},
['R'] = {
b = { { tag = 'td', style = { ['border-right'] = DOT, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', style = { ['border-right'] = DOT, ['border-bottom'] = DOT, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['border-bottom'] = DOT, ['width'] = '1em', ['height'] = '1em' } } }
},
['S'] = {
b = { { tag = 'td', style = { ['border-right'] = DOT, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', style = { ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['border-bottom'] = DOT, ['width'] = '1em', ['height'] = '1em' } } }
},
['T3'] = {
b = { { tag = 'td', style = { ['border-right'] = SLD, ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', style = { ['border-bottom'] = DOT, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', attr = { rowspan = '2' }, style = { ['width'] = '1em', ['height'] = '2em' } } }
},
['T'] = {
b = { { tag = 'td', style = { ['border-right'] = DOT, ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', style = { ['border-bottom'] = DOT, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', attr = { rowspan = '2' }, style = { ['width'] = '1em', ['height'] = '2em' } } }
},
['V'] = {
b = { { tag = 'td', style = { ['border-right'] = DSH, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', attr = { colspan = '2' }, style = { ['border-bottom'] = DSH, ['width'] = '2em', ['height'] = '1em' } } }
},
['W'] = {
b = { { tag = 'td', attr = { colspan = '2' }, style = { ['width'] = '2em', ['height'] = '1em' } } },
t = { { tag = 'td', style = { ['border-right'] = DOT, ['border-bottom'] = DOT, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['border-bottom'] = DOT, ['width'] = '1em', ['height'] = '1em' } } }
},
['Y'] = {
b = { { tag = 'td', attr = { colspan = '2' }, style = { ['width'] = '2em', ['height'] = '1em' } } },
t = { { tag = 'td', style = { ['border-right'] = DOT, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['border-bottom'] = DOT, ['width'] = '1em', ['height'] = '1em' } } }
},
['Z'] = {
b = { { tag = 'td', style = { ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', style = { ['border-right'] = DOT, ['border-bottom'] = DOT, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', attr = { rowspan = '2' }, style = { ['width'] = '1em', ['height'] = '2em' } } }
},
['^'] = {
b = { { tag = 'td', attr = { colspan = '2' }, style = { ['width'] = '2em', ['height'] = '1em' } } },
t = { { tag = 'td', style = { ['border-right'] = SLD, ['border-bottom'] = SLD, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['border-bottom'] = SLD, ['width'] = '1em', ['height'] = '1em' } } }
},
['$'] = {
b = { },
t = { { tag = 'td', attr = { colspan = '2', rowspan = '2'}, style = { ['width'] = '2em', ['height'] = '2em' } } }
},
['`'] = {
b = { { tag = 'td', attr = { colspan = '2' }, style = { ['width'] = '2em', ['height'] = '1em' } } },
t = { { tag = 'td', style = { ['border-right'] = SLD, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['border-bottom'] = SLD, ['width'] = '1em', ['height'] = '1em' } } }
},
['a2'] = {
b = { { tag = 'td', style = { ['border-right'] = DOT, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', style = { ['border-right'] = DOT, ['border-bottom'] = '1px dashed #000001', ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['border-bottom'] = DSH, ['width'] = '1em', ['height'] = '1em' } } }
},
['a'] = {
b = { { tag = 'td', style = { ['border-right'] = DOT, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', style = { ['border-right'] = DOT, ['border-bottom'] = SLD, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['border-bottom'] = SLD, ['width'] = '1em', ['height'] = '1em' } } }
},
['b2'] = {
b = { { tag = 'td', style = { ['border-right'] = DSH, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', style = { ['border-right'] = DSH, ['border-bottom'] = '1px dotted #000001', ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['border-bottom'] = DOT, ['width'] = '1em', ['height'] = '1em' } } }
},
['b3'] = {
b = { { tag = 'td', style = { ['border-right'] = SLD, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', style = { ['border-right'] = SLD, ['border-bottom'] = DSH, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['border-bottom'] = DOT, ['width'] = '1em', ['height'] = '1em' } } }
},
['b'] = {
b = { { tag = 'td', style = { ['border-right'] = SLD, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', style = { ['border-right'] = SLD, ['border-bottom'] = DOT, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['border-bottom'] = DOT, ['width'] = '1em', ['height'] = '1em' } } }
},
['c'] = {
b = { { tag = 'td', style = { ['border-right'] = DSH, ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', style = { ['border-right'] = DSH, ['border-bottom'] = SLD, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', attr = { rowspan = '2' }, style = { ['width'] = '1em', ['height'] = '2em' } } }
},
['d'] = {
b = { { tag = 'td', style = { ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', attr = { rowspan = '2' }, style = { ['border-right'] = DSH, ['width'] = '1em', ['height'] = '2em' } }, { tag = 'td', style = { ['border-bottom'] = SLD, ['width'] = '1em', ['height'] = '1em' } } }
},
['e'] = {
b = { { tag = 'td', style = { ['border-right'] = SLD, ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', style = { ['border-right'] = SLD, ['border-bottom'] = DSH, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', attr = { rowspan = '2' }, style = { ['width'] = '1em', ['height'] = '2em' } } }
},
['f'] = {
b = { { tag = 'td', style = { ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', attr = { rowspan = '2' }, style = { ['border-right'] = SLD, ['width'] = '1em', ['height'] = '2em' } }, { tag = 'td', style = { ['border-bottom'] = DSH, ['width'] = '1em', ['height'] = '1em' } } }
},
['h'] = {
b = { { tag = 'td', attr = { colspan = '2' }, style = { ['width'] = '2em', ['height'] = '1em' } } },
t = { { tag = 'td', style = { ['border-right'] = SLD, ['border-bottom'] = DSH, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['border-bottom'] = DSH, ['width'] = '1em', ['height'] = '1em' } } }
},
['i'] = {
b = { { tag = 'td', attr = { colspan = '2' }, style = { ['width'] = '2em', ['height'] = '1em' } } },
t = { { tag = 'td', style = { ['border-right'] = DSH, ['border-bottom'] = SLD, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['border-bottom'] = SLD, ['width'] = '1em', ['height'] = '1em' } } }
},
['j'] = {
b = { { tag = 'td', style = { ['border-right'] = DSH, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', attr = { colspan = '2' }, style = { ['border-bottom'] = SLD, ['width'] = '2em', ['height'] = '1em' } } }
},
['k2'] = {
b = { { tag = 'td', style = { ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', attr = { rowspan = '2' }, style = { ['border-right'] = DOT, ['width'] = '1em', ['height'] = '2em' } }, { tag = 'td', style = { ['border-bottom'] = DSH, ['width'] = '1em', ['height'] = '1em' } } }
},
['k3'] = {
b = { { tag = 'td', style = { ['border-right'] = DSH, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', style = { ['border-right'] = SLD, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['border-bottom'] = DSH, ['width'] = '1em', ['height'] = '1em' } } }
},
['k'] = {
b = { { tag = 'td', style = { ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', attr = { rowspan = '2' }, style = { ['border-right'] = DOT, ['width'] = '1em', ['height'] = '2em' } }, { tag = 'td', style = { ['border-bottom'] = SLD, ['width'] = '1em', ['height'] = '1em' } } }
},
['l2'] = {
b = { { tag = 'td', style = { ['border-right'] = DOT, ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', style = { ['border-right'] = DOT, ['border-bottom'] = '1px dashed #000001', ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', attr = { rowspan = '2' }, style = { ['width'] = '1em', ['height'] = '2em' } } }
},
['l3'] = {
b = { { tag = 'td', style = { ['border-right'] = DSH, ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', style = { ['border-right'] = SLD, ['border-bottom'] = SLD, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', attr = { rowspan = '2' }, style = { ['width'] = '1em', ['height'] = '2em' } } }
},
['l'] = {
b = { { tag = 'td', style = { ['border-right'] = DOT, ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', style = { ['border-right'] = DOT, ['border-bottom'] = SLD, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', attr = { rowspan = '2' }, style = { ['width'] = '1em', ['height'] = '2em' } } }
},
['m2'] = {
b = { { tag = 'td', style = { ['border-right'] = DSH, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', attr = { colspan = '2' }, style = { ['border-bottom'] = DOT, ['width'] = '2em', ['height'] = '1em' } } }
},
['m'] = {
b = { { tag = 'td', style = { ['border-right'] = SLD, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', attr = { colspan = '2' }, style = { ['border-bottom'] = DOT, ['width'] = '2em', ['height'] = '1em' } } }
},
['n2'] = {
b = { { tag = 'td', attr = { colspan = '2' }, style = { ['width'] = '2em', ['height'] = '1em' } } },
t = { { tag = 'td', style = { ['border-right'] = DSH, ['border-bottom'] = '1px dotted #000001', ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['border-bottom'] = DOT, ['width'] = '1em', ['height'] = '1em' } } }
},
['n'] = {
b = { { tag = 'td', attr = { colspan = '2' }, style = { ['width'] = '2em', ['height'] = '1em' } } },
t = { { tag = 'td', style = { ['border-right'] = SLD, ['border-bottom'] = DOT, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['border-bottom'] = DOT, ['width'] = '1em', ['height'] = '1em' } } }
},
['o2'] = {
b = { { tag = 'td', style = { ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', attr = { rowspan = '2' }, style = { ['border-right'] = DSH, ['width'] = '1em', ['height'] = '2em' } }, { tag = 'td', style = { ['border-bottom'] = DOT, ['width'] = '1em', ['height'] = '1em' } } }
},
['o'] = {
b = { { tag = 'td', style = { ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', attr = { rowspan = '2' }, style = { ['border-right'] = SLD, ['width'] = '1em', ['height'] = '2em' } }, { tag = 'td', style = { ['border-bottom'] = DOT, ['width'] = '1em', ['height'] = '1em' } } }
},
['p2'] = {
b = { { tag = 'td', style = { ['border-right'] = DSH, ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', style = { ['border-right'] = DSH, ['border-bottom'] = '1px dotted #000001', ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', attr = { rowspan = '2' }, style = { ['width'] = '1em', ['height'] = '2em' } } }
},
['p'] = {
b = { { tag = 'td', style = { ['border-right'] = SLD, ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', style = { ['border-right'] = SLD, ['border-bottom'] = DOT, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', attr = { rowspan = '2' }, style = { ['width'] = '1em', ['height'] = '2em' } } }
},
['q2'] = {
b = { { tag = 'td', attr = { colspan = '2' }, style = { ['width'] = '2em', ['height'] = '1em' } } },
t = { { tag = 'td', style = { ['border-right'] = DOT, ['border-bottom'] = '1px dashed #000001', ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['border-bottom'] = DSH, ['width'] = '1em', ['height'] = '1em' } } }
},
['q'] = {
b = { { tag = 'td', attr = { colspan = '2' }, style = { ['width'] = '2em', ['height'] = '1em' } } },
t = { { tag = 'td', style = { ['border-right'] = DOT, ['border-bottom'] = SLD, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['border-bottom'] = SLD, ['width'] = '1em', ['height'] = '1em' } } }
},
['r2'] = {
b = { { tag = 'td', style = { ['border-right'] = DOT, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', attr = { colspan = '2' }, style = { ['border-bottom'] = DSH, ['width'] = '2em', ['height'] = '1em' } } }
},
['r'] = {
b = { { tag = 'td', style = { ['border-right'] = DOT, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', attr = { colspan = '2' }, style = { ['border-bottom'] = SLD, ['width'] = '2em', ['height'] = '1em' } } }
},
['t'] = {
b = { { tag = 'td', style = { ['border-right'] = SLD, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', style = { ['border-right'] = SLD, ['border-bottom'] = DSH, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['border-bottom'] = DSH, ['width'] = '1em', ['height'] = '1em' } } }
},
['v'] = {
b = { { tag = 'td', style = { ['border-right'] = SLD, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', attr = { colspan = '2' }, style = { ['border-bottom'] = SLD, ['width'] = '2em', ['height'] = '1em' } } }
},
['x'] = {
b = { },
t = { }
},
['y'] = {
b = { { tag = 'td', style = { ['border-right'] = SLD, ['width'] = '1em', ['height'] = '1em' } }, { tag = 'td', style = { ['width'] = '1em', ['height'] = '1em' } } },
t = { { tag = 'td', attr = { colspan = '2' }, style = { ['border-bottom'] = DSH, ['width'] = '2em', ['height'] = '1em' } } }
},
['~'] = {
b = { { tag = 'td', attr = { colspan = '2' }, style = { ['width'] = '2em', ['height'] = '1em' } } },
t = { { tag = 'td', attr = { colspan = '2' }, style = { ['border-bottom'] = DSH, ['width'] = '2em', ['height'] = '1em' } } }
}
}
function p.main(frame)
local args = frame:getParent().args
local cell_args = {}
for i, v in ipairs(args) do
local w = mw.text.trim(v)
if not w:find('%S') then
w = '$'
end
local cell_x = { }
if cells[w] then
cell_x.box = nil
cell_x.name = w
else
cell_x.name = mw.text.trim(v)
local args_v = args[cell_x.name]
if args_v then
cell_x.text = args_v
else
cell_x.text = '{{{'..w..'}}}'
end
cell_x.box = true
cell_x.colspan = args['colspan_'..w] or args['colspan_ '..w] or args.colspan or '6'
cell_x.rowspan = args['rowspan_'..w] or args['rowspan_ '..w] or args.rowspan or '2'
cell_x.thick = args['border_'..w] or args['border_ '..w] or args.border or '2'
cell_x.css = args['boxstyle_'..w] or args['boxstyle_ '..w] or args.boxstyle or ''
end
table.insert(cell_args,cell_x)
end
return p._main(cell_args)
end
function p._main(cell_args)
local ret = mw.html.create('tr')
:css({ ['height'] = '1px',
['text-align'] = 'center' })
local ret2 = mw.html.create('tr')
:css({ ['height'] = '1px',
['text-align'] = 'center' })
for i, v in ipairs(cell_args) do
if v.box then
ret:node(make_box(v))
else
ret:node(make_cell(v.name.t))
ret2:node(make_cell(v.name..'b'))
end
end
return tostring(ret) .. tostring(ret2)
end
function make_cell(name)
local props = cells[name]
if not props then
return
end
local ret = ''
for i, v in ipairs(props) do
ret = ret .. tostring(make_tag(v))
end
return ret
end
function make_tag(tbl)
local ret = mw.html.create(tbl.tag,{selfClosing=true})
if tbl.style then
ret:css(tbl.style)
end
if tbl.attr then
ret:attr(tbl.attr)
end
return ret
end
function make_box(tbl)
local ret = mw.html.create('td')
:attr('colspan',tbl.colspan)
:attr('rowspan',tbl.rowspan)
:css({ ['padding'] = '0.2em',
['border'] = tbl.thick .. 'px solid black' })
:cssText(tbl.css)
:wikitext(tbl.text)
return ret
end
return p