8,756
edits
mNo edit summary |
m (THIS IS NOT A CODE OF HONOR) |
||
Line 14: | Line 14: | ||
local args = h.merge() | local args = h.merge() | ||
local query = {} | result = p.query(args) | ||
local tbl = {} | |||
for i, row in ipairs(result) do | |||
row.index = i | |||
tbl[#tbl+1] = frame:expandTemplate{ title = args.template, args = row } | |||
end | |||
local intro = frame:preprocess(args.intro or '') | |||
local outro = frame:preprocess(args.outro or '') | |||
return intro .. table.concat(tbl,args.delimiter or '') .. outro | |||
end | |||
function p.query(args) | |||
local frame = mw.getCurrentFrame() | |||
local query = {} | |||
for k, v in pairs(args) do | for k, v in pairs(args) do | ||
if string.sub(k, 0, 2) == 'q?' then | if string.sub(k, 0, 2) == 'q?' then | ||
Line 38: | Line 52: | ||
h.concatOneToManyFieldsInEachRow(result, args.one_to_many_sep or ',') | h.concatOneToManyFieldsInEachRow(result, args.one_to_many_sep or ',') | ||
end | end | ||
return result | |||
end | end | ||
Line 147: | Line 153: | ||
function p.compound(frame) | function p.compound(frame) | ||
local args = h.merge() | local args = h.merge() | ||
local | local splitargs = {} | ||
splitargs[1] = util_args.splitNamedArgs(args[1], '%s*;%s*') | |||
splitargs[2] = util_args.splitNamedArgs(args[2], '%s*;%s*') | |||
return table.concat( | |||
local result = {} | |||
result[1] = p.query(splitargs[1]) | |||
result[2] = p.query(splitargs[2]) | |||
local tbl = {} | |||
for i, row in ipairs(result[1]) do | |||
row.index = i | |||
tbl[#tbl+1] = frame:expandTemplate{ title = args.template, args = row } | |||
end | |||
part1 = table.concat(tbl,args.delimiter or '') | |||
local tbl2 = {} | |||
for j, rowj in ipairs(result2) do | |||
row.index = i | |||
tbl2[#tbl2+1] = frame:expandTemplate{ title = args.template, args = row } | |||
end | |||
local intro = frame:preprocess(args.intro or '') | |||
local outro = frame:preprocess(args.outro or '') | |||
return intro .. (part1 or '') ..(#part1 > 0 and (args.delimiter or '')) .. table.concat(tbl2, args.delimiter or '') .. outro | |||
end | end | ||
return p | return p |