Module:Sort table
Appearance
Implements {{sort table}}
local p = {}
function p.asc(frame)
if tonumber(frame.args[1]) > 1 then
local before = string.rep("[%|\n]%|(.-)", tonumber(frame.args[1]) - 1)
else
local before = ''
end
local indexed_rows
sorted_table = ''
local key = 0
return frame.args[2]
-- for row in mw.text.gsplit(frame.args[2], "\n|-", true) do
-- key = row:gmatch(before.."[%|\n]%|(.-)[%|\n]%|")
-- indexed_rows[key] = {key, row}
-- end
-- table.sort(indexed_rows)
-- for key, row in pairs(indexed_rows) do
-- sorted_table = sorted_table..'\n|-'..row
-- end
-- return sorted_table
end
function p.desc(frame)
local rows = mw.text.split( frame.args[2], "\n|-", true)
for row in rows do
indexed_rows[row:gmatch(string.rep("[%|\n]%|(.-)", frame.args[1] - 1).."[%|\n]%|(.-)[%|\n]%|")] = row
end
table.sort(indexed_rows, function (a, b) return a > b end )
return table.concat( indexed_rows[2], "\n%|%-" )
end
return p