Sort doc navigation properly and add missing modules

This commit is contained in:
Andreas Hocevar
2020-01-29 14:04:52 +01:00
parent c373a3eafd
commit e3f9e250ab
+13 -9
View File
@@ -188,6 +188,12 @@ function attachModuleSymbols(doclets, modules) {
}); });
} }
function getPrettyName(longname) {
return longname
.split('~')[0]
.replace('module:', '');
}
/** /**
* Create the navigation sidebar. * Create the navigation sidebar.
* @param {object} members The members that will be used to create the sidebar. * @param {object} members The members that will be used to create the sidebar.
@@ -206,10 +212,12 @@ function buildNav(members) {
// merge namespaces and classes, then sort // merge namespaces and classes, then sort
const merged = members.modules.concat(members.classes); const merged = members.modules.concat(members.classes);
merged.sort(function(a, b) { merged.sort(function(a, b) {
if (a.longname > b.longname) { const prettyNameA = getPrettyName(a.longname).toLowerCase();
const prettyNameB = getPrettyName(b.longname).toLowerCase();
if (prettyNameA > prettyNameB) {
return 1; return 1;
} }
if (a.longname < b.longname) { if (prettyNameA < prettyNameB) {
return -1; return -1;
} }
return 0; return 0;
@@ -221,9 +229,7 @@ function buildNav(members) {
nav.push({ nav.push({
type: 'class', type: 'class',
longname: v.longname, longname: v.longname,
prettyname: v.longname prettyname: getPrettyName(v.longname),
.split('~')[0]
.replace('module:', ''),
name: v.name, name: v.name,
module: find({ module: find({
kind: 'module', kind: 'module',
@@ -269,13 +275,11 @@ function buildNav(members) {
memberof: v.longname memberof: v.longname
}); });
// only add modules that have more to show than just a single class // only add modules that have more to show than just a single class
if (classes.length !== 1 && (classes.length + members.length + methods.length + typedefs.length + events.length > 0)) { if (!classes.length || classes.length - 1 + members.length + methods.length + typedefs.length + events.length > 0) {
nav.push({ nav.push({
type: 'module', type: 'module',
longname: v.longname, longname: v.longname,
prettyname: v.longname prettyname: getPrettyName(v.longname),
.split('~')[0]
.replace('module:', ''),
name: v.name, name: v.name,
members: members, members: members,
methods: methods, methods: methods,