Vorlagenprogrammierung | Diskussionen | Lua | Unterseiten | |||
Modul | Deutsch | English
|
Modul: | Dokumentation |
Diese Seite enthält Code in der Programmiersprache Lua. Einbindungszahl Cirrus
local p = {}
local getArgs = require('Module:Arguments').getArgs
local function form(num)
return (tonumber(num) and mw.getLanguage('de'):formatNum(tonumber(num))) or '–'
end
function p.balken(frame)
local args = getArgs(frame)
local data, index = {}, {}
local i = 0
for a = 1, 30 do i = i + 1
if args['w' .. i] then table.insert(index, i) end
end
local maxvalue = 0
local num = 1
while (args['w'..num]) do
data[num] = {w = tonumber(args['w'..num]),}
maxvalue = math.max(maxvalue, data[num].w)
num = num+1
end
local root = mw.html.create('table'):addClass('wikitable'):css('font-size', '90%')
row = root:tag('tr')
row:tag('th')
:wikitext(args['titel'])
:attr('colspan', 3)
row = root:tag('tr')
row:tag('th')
:wikitext(args['untertitel1'])
:css('background', '#F0F0F0')
:css('border-right', '0.1px solid #F0F0F0')
:css('font-size', '90%')
row:tag('th')
:wikitext(args['untertitel2'])
:attr('colspan', 2)
:css('background-color', '#F0F0F0')
:css('font-size', '90%')
for k, v in pairs(index) do
if args['d'..v] then
row = root:tag('tr')
row:tag('td')
:wikitext(args['d'..v])
:css('border-bottom', '0.1px solid #C0C0C0')
:css('border-right', '0.1px solid #F0F0F0')
:css('padding-right', '25px')
end
if args['w' .. v] then
row:tag('td')
:wikitext('<div style="margin-left:-6px;background-color:#'..(args['f'..v] or '6495ED')..';width:'.. args['w'..v]*(args['width'] or 100)/maxvalue..'px;height:1.2em"></div>')
:css('border-bottom', '0.1px solid #C0C0C0')
:css('border-right', '0.1px solid #F0F0F0')
row:tag('td')
:wikitext(form(args['w'..v]))
:css('min-width', '50px')
:css('text-align', 'right')
:css('padding-left', '25px')
end
end
return root
end
return p