8,756
edits
mNo edit summary |
(add table formatting? maybe?) |
||
Line 11: | Line 11: | ||
function p.main(frame) | function p.main(frame) | ||
local args = h.merge() | local args = h.merge() | ||
local intro = frame:preprocess(args.intro or '') | |||
local outro = frame:preprocess(args.outro or '') | |||
local delimiter = args.delimiter or '' | |||
local colcount = args.columns or nil | |||
local format = args.format or nil | |||
local query = {} | local query = {} | ||
Line 37: | Line 44: | ||
end | end | ||
local tbl = {} | local tbl = {} | ||
for i, row in ipairs(result) do | if format == "table" then | ||
return (intro .. '<table class="wikitable">' .. | |||
h.makeTable(result) .. '</table>' ..outro) | |||
else | |||
for i, row in ipairs(result) do | |||
row.index = i | |||
tbl[#tbl+1] = frame:expandTemplate{ title = args.template, args = row } | |||
end | |||
if colcount ~= nil then | |||
intro = (intro .. '<div style="-webkit-column-count:' .. | |||
colcount .. '; -moz-column-count:' .. | colcount .. '; -moz-column-count:' .. | ||
colcount .. '; column-count:' .. colcount .. ';">') | colcount .. '; column-count:' .. colcount .. ';">') | ||
outro = '</div>' ..outro | |||
end | |||
if format == "ul" then | |||
intro = intro .. "<ul><li>" | |||
outro = "</ul>" .. outro | |||
delimiter = "<li>" | |||
end | |||
return intro .. table.concat(tbl, delimiter) .. outro | |||
end | end | ||
end | end | ||
Line 228: | Line 232: | ||
local outro = frame:preprocess(args['outro'] or '') | local outro = frame:preprocess(args['outro'] or '') | ||
return intro .. table.concat(tbl, delimiter) .. outro | return intro .. table.concat(tbl, delimiter) .. outro | ||
end | |||
function getColNames(row) | |||
cols = {} | |||
for colname, _ in pairs(row)do | |||
table.insert(cols, colname) | |||
end | |||
return cols | |||
end | |||
function h.makeTable(result) | |||
local util_html = require'Module:HTML Utility' | |||
local tbl = mw.html.create('table') | |||
:addClass('wikitable') | |||
util_html.printHeader(tbl, result) | |||
util_html.printRowsByList(tbl, result) | |||
return tbl | |||
end | end | ||
return p | return p |