Modul:Infobox
Erscheinungsbild
Die Dokumentation für dieses Modul kann unter Modul:Infobox/Doku erstellt werden
local p = {}
local getArgs = require('Modul:Arguments').getArgs
function p.tab(frame)
local args = getArgs(frame)
local index = {}
local i = 0
for datum = 1, 80 do i = i + 1
if args['name'..i] or args['wert'..i] or args['farbe'..i] or args['unter'..i] or args['datei'..i] then table.insert(index, i) end
if args['wertzwei'..i] then wertzwei = true end
if args['wertdrei'..i] then wertdrei = true end
end
cspan = wertdrei and 4 or wertzwei and 3 or 2
local root = mw.html.create('table'):css('clear', 'left'):css('float', 'right'):css('font-size', '96%'):css('border', '0.1px solid silver'):css('border-collapse', 'collapse'):css('line-height', '1.5em'):css('min-width', '20em')
row = root:tag('tr')
row:tag('td')
:wikitext(args['titel'] or 'Titel')
:css('background-color', '#CCF')
:css('text-align', 'center')
:css('font-weight', 'bold')
:css('padding-top', '0.2em')
:css('padding-bottom', '0.2em')
:css('font-size', '110%')
:attr('colspan', cspan)
for k, v in pairs(index) do
text = args['wertzwei'..v] and 'center' or 'left'
if args['wert'..v] or args['farbe'..v] or args['unter'..v] or args['datei'..v] then
row = root:tag('tr')
if args['unter'..v] then
row:tag('td')
:wikitext(args['unter'..v])
:css('font-weight', 'bold')
:css('text-align', 'center')
:css('background-color', '#EBEBFF')
:css('padding-top', '0.3em')
:css('padding-bottom', '0.3em')
:css('padding-left', '0.5em')
:css('padding-right', '0.5em')
:attr('colspan', cspan)
elseif args['datei'..v] then
row:tag('td')
:wikitext(args['datei'..v])
:css('text-align', 'center')
:css('vertical-align', 'top')
:attr('colspan', cspan)
elseif args['farbe'..v] then
row:tag('td')
:css('background-color', 'rgb(170 170 170 / 0.1)')
row:tag('td')
:wikitext('<div style="background-color:#'..args['farbe'..v]..';height:0.8em;width:100%></div>')
if args['farbezwei'..v] then
row:tag('td')
:wikitext('<div style="background-color:#'..args['farbezwei'..v]..';height:0.8em;width:100%></div>')
if args['farbedrei'..v] then
row:tag('td')
:wikitext('<div style="background-color:#'..args['farbedrei'..v]..';height:0.8em;width:100%></div>')
end
end
else
row:tag('td')
:wikitext(args['name'..v] or '')
:css('font-weight', 'bold')
:css('background-color', 'rgb(170 170 170 / 0.1)')
:css('color', 'var(--color-base, #202122)')
:css('vertical-align', 'top')
:css('padding-top', '0.3em')
:css('padding-bottom', '0.3em')
:css('padding-left', '0.3em')
:css('padding-right', '0.8em')
:css('border-top', '0.1px solid #E6E6E6')
end
end
if args['wert'..v] then
if wertzwei then
if args['wertzwei'..v] then
row:tag('td')
:wikitext(args['wert'..v])
:css('text-align', text)
:css('padding-top', '0.3em')
:css('padding-bottom', '0.3em')
:css('padding-left', '0.2em')
:css('padding-right', '0.2em')
:css('border-top', '0.1px solid #E6E6E6')
:css('vertical-align', 'top')
:css('max-width', args['wertdrei'..v] and '112px' or '135px')
row:tag('td')
:wikitext(args['wertzwei'..v])
:css('text-align', text)
:css('padding-top', '0.3em')
:css('padding-bottom', '0.3em')
:css('padding-left', '0.2em')
:css('padding-right', '0.2em')
:css('border-top', '0.1px solid #E6E6E6')
:css('vertical-align', 'top')
:css('max-width', args['wertdrei'..v] and '112px' or '135px')
if args['wertdrei'..v] then
row:tag('td')
:wikitext(args['wertdrei'..v])
:css('text-align', text)
:css('padding-top', '0.3em')
:css('padding-bottom', '0.3em')
:css('padding-left', '0.2em')
:css('padding-right', '0.2em')
:css('vertical-align', 'top')
:css('border-top', '0.1px solid #E6E6E6')
:css('max-width', '112px')
end
else
row:tag('td')
:wikitext(args['wert'..v])
:css('text-align', text)
:css('padding-top', '0.3em')
:css('padding-bottom', '0.3em')
:css('padding-left', '0.2em')
:css('padding-right', '0.2em')
:css('border-top', '0.1px solid #E6E6E6')
:css('max-width', '135px')
:css('vertical-align', 'top')
:attr('colspan', wertdrei and 3 or 2)
end
else
row:tag('td')
:wikitext(args['wert'..v])
:css('text-align', text)
:css('padding-top', '0.3em')
:css('padding-bottom', '0.3em')
:css('padding-left', '0.3em')
:css('padding-right', '0.3em')
:css('vertical-align', 'top')
:css('border-top', '0.1px solid #E6E6E6')
:css('max-width', '320px')
end
end
end
return root
end
return p