Module: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