browser: stable sort

This commit is contained in:
ed 2021-03-29 20:08:32 +02:00
parent fd490af434
commit 7ff08bce57
2 changed files with 45 additions and 12 deletions

View file

@ -1094,22 +1094,46 @@ var treectl = (function () {
if (!name) if (!name)
continue; continue;
if (name.indexOf('tags/') == -1) { if (name.indexOf('tags/') === 0) {
nodes.sort(function (v1, v2) { name = name.slice(5);
if (!v1[name]) return -1 * rev; for (var b = 0, bb = nodes.length; b < bb; b++)
if (!v2[name]) return 1 * rev; nodes[b]._sv = nodes[b].tags[name];
return rev * (typ == 'int' ? (v1[name] - v2[name]) : (v1[name].localeCompare(v2[name])));
});
} }
else { else {
name = name.slice(5); for (var b = 0, bb = nodes.length; b < bb; b++) {
nodes.sort(function (v1, v2) { var v = nodes[b][name];
if (!v1.tags[name]) return -1 * rev;
if (!v2.tags[name]) return 1 * rev; if ((v + '').indexOf('<a ') === 0)
return rev * (typ == 'int' ? (v1.tags[name] - v2.tags[name]) : (v1.tags[name].localeCompare(v2.tags[name]))); v = v.split('>')[1];
}); else if (name == "href" && v)
v = uricom_dec(v)[0]
nodes[b]._sv = v;
}
} }
var onodes = nodes.map((x) => x);
nodes.sort(function (n1, n2) {
var v1 = n1._sv,
v2 = n2._sv;
if (v1 === undefined) {
if (v2 === undefined) {
return onodes.indexOf(n1) - onodes.indexOf(n2);
}
return -1 * rev;
}
if (v2 === undefined) return 1 * rev;
var ret = rev * (typ == 'int' ? (v1 - v2) : (v1.localeCompare(v2)));
if (ret === 0)
ret = onodes.indexOf(n1) - onodes.indexOf(n2);
return ret;
});
} }
for (var b = 0, bb = nodes.length; b < bb; b++)
delete nodes[b]._sv;
} }
catch (ex) { catch (ex) {
console.log("failed to apply sort config: " + ex); console.log("failed to apply sort config: " + ex);

View file

@ -129,6 +129,15 @@ pip install virtualenv
# readme toc # readme toc
cat README.md | awk '!/^#/{next} {lv=length($1);sub(/[^ ]+ /,"");bab=$0;gsub(/ /,"-",bab)} {printf "%" ((lv-1)*4+1) "s [%s](#%s)\n", "*",$0,bab}' cat README.md | awk '!/^#/{next} {lv=length($1);sub(/[^ ]+ /,"");bab=$0;gsub(/ /,"-",bab)} {printf "%" ((lv-1)*4+1) "s [%s](#%s)\n", "*",$0,bab}'
# fix firefox phantom breakpoints,
# suggestions from bugtracker, doesnt work (debugger is not attachable)
devtools settings >> advanced >> enable browser chrome debugging + enable remote debugging
burger > developer >> browser toolbox (ctrl-alt-shift-i)
iframe btn topright >> chrome://devtools/content/debugger/index.html
dbg.asyncStore.pendingBreakpoints = {}
# fix firefox phantom breakpoints
about:config >> devtools.debugger.prefs-schema-version = -1
## ##
## http 206 ## http 206