Mòdul:Tree chart

A continuació es mostra la documentació transclosa de la subpàgina /ús. [salta a la caixa de codi]
Ús
[modifica]Implementa Plantilla:Arbre genealògic; La documentació completa sobre la sintaxi del gràfic existeix a Plantilla:Arbre genealògic/ús
Aquest mòdul utilitza la biblioteca mw.html per crear files de cel·les de taula, les vores de les quals dibuixen línies per mostrar les relacions entre elements. Quan un paràmetre sense nom coincideix amb una clau a Mòdul:Tree chart/data, el mòdul crearà un bloc amb estils tal com es defineix a la taula. Cada clau de la taula té una subtaula amb 0, 1 o 2 claus pròpies: t
per a la fila "superior" i b
per a la fila "inferior". Qualsevol paràmetre sense nom el valor del qual no existeixi a la taula s'utilitzarà per crear elements al gràfic i es buscaran paràmetres addicionals amb nom per a aquest valor.
require('strict')
--recordeu que per a plantilla de prova cal canviar la línia 33 (wrappers) per afegir-hi "/prova" a la plantilla
local p = {}
local cells = mw.loadData('Module:Tree chart/data')
function p._main(cell_args)
local ret = mw.html.create()
local top = ret:tag('tr')
:css{ height = '1px',
['text-align'] = 'center' }
local bottom = ret:tag('tr')
: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' }
:cssText(v.boxstyle or cell_args.boxstyle)
:wikitext(v.text)
end
end
return tostring(ret)
end
function p.main(frame)
local args = require('Module:Arguments').getArgs(frame, {wrappers = 'Plantilla:Arbre genealògic', 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