이 모듈에 대한 설명문서는 모듈:Bar chart/설명문서에서 만들 수 있습니다
--[[]]
local getArgs = require('Module:Arguments').getArgs
local round = require('Module:Math')._round
local ustring = mw.ustring
local p = {}
function p.main(frame)
local args = getArgs(frame)
local color, value, cont, percent, relative = {}, {}, {}, {}, {}
local barClass = args['막대속성'] or ""
local contClass = args['내용속성'] or ""
local valueClass = args['값속성'] or ""
local barStyle = args['막대모양'] or ""
local barHeight = args['막대높이'] or "2em"
local showValue = args['값보이기'] or args['값표시'] or 'false'
if showValue == "false" then
valueClass = valueClass.." ".."hidden_value"
end
local rawLen = 3
local i = rawLen + 1
local j = 1
while args[i] and args[i] ~= 'end' do
value[j] = string.gsub(args[i] or '-1', ',', '') + 0
cont[j] = args[i+2] or ""
color[j] = args[i+1] or ''
i = i + 3
j = j + 1
end
local end_ = j - 1
local return_ = ""
local sum , maxval = 0, 0
for j = 1, end_ do
if value[j] ~= -1 then
sum = sum + value[j]
end
if value[j] > maxval then
maxval = value[j]
end
end
for j = 1, end_ do
if value[j] ~= -1 then
percent[j] = round(value[j]/sum * 100, 4)
relative[j] = round(value[j]/maxval * 100, 4)
end
end
local contbox, barbox = "", ""
for j = 1, end_ do
if -1 ~= value[j] then
contbox = contbox..ustring.format([[<div class="cont %s" style="height: %s; line-height: %s;margin: 0 0.5em 0.8em;">%s</div>]], contClass, barHeight, barHeight, cont[j])
barbox = barbox..ustring.format([[<div class="bar %s" style="padding-left:%s%%; height: %s;background: %s;margin:0 0 0.8em 0;%s"><div class="value %s" style="line-height: %s;">%s</div></div>]], barClass, relative[j], barHeight, color[j], barStyle, valueClass, barHeight, value[j] )
end
end
return [[<div style="" class="contbox">]]..contbox..[[</div>]]..[[<div class="barbox" style="width:100%">]]..barbox..[[</div>]]
end
return p