Module:CargoQuery: Difference between revisions

521 bytes added ,  02:14, 23 February 2021
add table formatting? maybe?
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
row.index = i
return (intro .. '<table class="wikitable">' ..
tbl[#tbl+1] = frame:expandTemplate{ title = args.template, args = row }
h.makeTable(result) .. '</table>' ..outro)
end
else
for i, row in ipairs(result) do
local intro = frame:preprocess(args.intro or '')
row.index = i
local outro = frame:preprocess(args.outro or '')
tbl[#tbl+1] = frame:expandTemplate{ title = args.template, args = row }
local delimiter = args.delimiter or ''
end
if colcount ~= nil then
local colcount = args.columns or nil
intro = (intro .. '<div style="-webkit-column-count:' ..  
local format = args.format or nil
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
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
if format == "ul" then
intro = intro .. "<ul><li>"
outro = "</ul>" .. outro
delimiter = "<li>"
end
return intro .. table.concat(tbl, delimiter) .. outro
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