本页面全部或部分内容原来自英文维基百科页面Module:Tree chart,依 CC BY-SA 3.0 授权引入;原贡献者可以在这里看到。 |
本模块是 {{碧蓝航线装备研发路线图}} 的 Lua 支持库。模板 {{碧蓝航线装备研发路线图}} 使用类似ASCII艺术的句法生成简单系谱图。它用HTML表格和CSS在适当的位置生成文字框和线条以构成家族树,使用者在文本框内可以任意运用维基语法。
这个模块使用 mw.html 库的表格设计,来绘制 碧蓝航线装备研发路线图 的方块和方块之间的连接线。对于一个 Module:碧蓝航线装备研发路线图/data 中对应的 key,这个模块就会绘制一个匹配样式的对应的 block。表格中的每一个 key 可能有 0~2 个对应的 key:t
表示首行,b
表示末行。对于 Module:碧蓝航线装备研发路线图/data 中没有的 key,将会被看作是 碧蓝航线装备研发路线图 中的方块,方块的内容以 key 为参数名,另补充在后面。
local SLD = '4px solid #6D9EF0' local DOT = '4px solid #6D9EF0' 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'] = 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'] = 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 = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } }, t = { { attr = { colspan = '2' }, style = { ['border-bottom'] = SLD, width = '2em', 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' } } } }, ["'"] = { 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 = { { 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' } } } }, ['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'] = {}, } 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