-- this module implements local p =
local function isnotempty(s) return s and s:match('^%s*(.-)%s*$') ~= end
function p._chart_args(args) local pfetch = require('Module:Political party')._fetch local colors = mw.text.split(args['colors'] or , '%s*[,]%s*') local targs = for k,v in pairs(args) do if k:find('^y%d+Party$') then local digit = string.match(k, '%d+') local color = isnotempty(colors[tonumber(digit)]) and colors[tonumber(digit)] or pfetch local pname = isnotempty(args['y' .. digit .. 'Title']) and args['y' .. digit .. 'Title'] or pfetch targs['y' .. digit .. 'Title'] = pname colors[tonumber(digit)] = color else targs[k] = v end end targs['colors'] = string.gsub(table.concat(colors, ', '), '#', '#')
return targsend
function p.debug(frame) local args = p._chart_args(frame:getParent.args) local res = '
\n{{Graph:Chart\n' for k,v in pairs(args) do res = res .. '| ' .. k .. ' = ' .. v .. '\n' end res = res .. '}}\n' return resend
function p.main(frame) return mw.getCurrentFrame:expandTemplateend
function p.mainlua(frame) local graphchart = require('Module:Graph:Chart') frame.args = p._chart_args(frame:getParent.args) return graphchart[''](frame)end
return p