local getArgs = require('Module:Arguments').getArgs
local p = {}
local function makeInvokeFunction(funcName)
-- makes a function that can be returned from #invoke, using
-- [[Module:Arguments]].
return function (frame)
local args = getArgs(frame, {parentOnly = true})
return p[funcName](args)
end
end
p.link = makeInvokeFunction('_link')
function p._link(args)
local result='{|class="wikitable"\n'
local t = {}
t[1].h='a'
t[1].d='1a'
t[2].h='b'
t[2].d='2b'
t[3].h='c'
t[3].d='3c'
t[4].h='d'
t[4].d='4d'
for k,v in ipairs(t) do
result=result..'\n|-\n!'..v.h..'\n|'..v.d
end
return result .. '\n|}'
end
p.row = makeInvokeFunction('_row')
function p._row(args)
local somelist = args[1]
local result
result = ''
for k1, v1 in ipairs(mw.text.split(somelist, '\n')) do
for k2, v2 in ipairs(mw.text.split(v1 .. '\\', '\\')) do
if k2 > 2 then break
elseif (k2 % 2 == 1) then
if (k1 % 2 == 0) then
result = result .. '\n|-style="background:#888"\n!' .. k1 .. '\n|' .. v2
else result = result .. '\n|-\n!' .. k1 .. '\n|' .. v2
end
elseif (k2 % 2 == 0) then result = result .. '||' .. v2
end
end
end
result = '{|class="wikitable"' .. result .. '\n|}'
return result
end
return p