Toggle menu
15
236
84
27.9K
Kenshi Wiki
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.
Revision as of 06:01, 23 February 2025 by Prd (talk | contribs) (Created page with "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)...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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