Modulus:listSort
Usus
+/-Usurpatur in “Formula:ordinatio”
{{#invoke:listSort|{{{1}}}|{{{2}}}}}
local p = {}
function p.asc(frame)
items = splitLine( frame.args[1] );
table.sort( items );
return table.concat( items, "\n" );
end
function p.trans(frame)
items = splitLine( frame.args[1] );
table.sort( items, function (a, b) return transMatch(a, b) end );
return table.concat( items, "\n" );
end
function p.desc(frame)
items = splitLine( frame.args[1] );
table.sort( items, function (a, b) return a > b end );
return table.concat( items, "\n" );
end
function p.pre(frame)
return "<pre>" .. frame.args[1] .. "</pre>";
end
function p.perm(frame)
items = splitLine( frame.args[1] );
return "<pre>" .. table.concat( items, "\n" ) .. "</pre>";
end
function splitLine( text )
return mw.text.split( text, "\n", true );
end
function transMatch( string1, string2 )
local match = "%W*%w+%s*%w*%s*%w*%s*:";
local capture1 = mw.ustring.match(string1, match);
local capture2 = mw.ustring.match(string2, match);
return capture1 < capture2;
end
return p