From e484eca1a16291577f2f8105c123731c400c23c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maximilian=20Kr=C3=B6g?= Date: Thu, 27 Feb 2020 23:47:22 +0100 Subject: [PATCH] Some more cleanup No need to sort beforehand and therefore sorting can be done at last too. Also forEach is just fine, no need for underscore. This changes the navigation default order for modules to be after classes when the name is the same. --- config/jsdoc/api/template/publish.js | 104 +++++++++++++-------------- 1 file changed, 51 insertions(+), 53 deletions(-) diff --git a/config/jsdoc/api/template/publish.js b/config/jsdoc/api/template/publish.js index 3ac0e65570..c1d4b56156 100644 --- a/config/jsdoc/api/template/publish.js +++ b/config/jsdoc/api/template/publish.js @@ -14,7 +14,6 @@ const path = require('jsdoc/lib/jsdoc/path'); const taffy = require('taffydb').taffy; const handle = require('jsdoc/lib/jsdoc/util/error').handle; const helper = require('jsdoc/lib/jsdoc/util/templateHelper'); -const _ = require('underscore'); const htmlsafe = helper.htmlsafe; const linkto = helper.linkto; const resolveAuthorLinks = helper.resolveAuthorLinks; @@ -211,23 +210,9 @@ function getPrettyName(doclet) { */ function buildNav(members) { const nav = []; - // merge namespaces and classes, then sort - const merged = members.modules.concat(members.classes); - merged.sort(function(a, b) { - const prettyNameA = getPrettyName(a).toLowerCase(); - const prettyNameB = getPrettyName(b).toLowerCase(); - if (prettyNameA > prettyNameB) { - return 1; - } - if (prettyNameA < prettyNameB) { - return -1; - } - return 0; - }); - - _.each(merged, function(v) { + members.classes.forEach(function(v) { // exclude interfaces from sidebar - if (v.interface !== true && v.kind === 'class') { + if (v.interface !== true) { nav.push({ type: 'class', longname: v.longname, @@ -255,44 +240,57 @@ function buildNav(members) { memberof: v.longname }) }); - } else if (v.kind == 'module') { - const classes = find({ - kind: 'class', - memberof: v.longname - }); - const members = find({ - kind: 'member', - memberof: v.longname - }); - const methods = find({ - kind: 'function', - memberof: v.longname - }); - const typedefs = find({ - kind: 'typedef', - memberof: v.longname - }); - const events = find({ - kind: 'event', - memberof: v.longname - }); - // Only add modules that contain more than just classes with their - // associated Options typedef - if (typedefs.length > classes.length || members.length + methods.length > 0) { - nav.push({ - type: 'module', - longname: v.longname, - prettyname: getPrettyName(v), - name: v.name, - members: members, - methods: methods, - typedefs: typedefs, - fires: v.fires, - events: events - }); - } } }); + members.modules.forEach(function(v) { + const classes = find({ + kind: 'class', + memberof: v.longname + }); + const members = find({ + kind: 'member', + memberof: v.longname + }); + const methods = find({ + kind: 'function', + memberof: v.longname + }); + const typedefs = find({ + kind: 'typedef', + memberof: v.longname + }); + const events = find({ + kind: 'event', + memberof: v.longname + }); + // Only add modules that contain more than just classes with their + // associated Options typedef + if (typedefs.length > classes.length || members.length + methods.length > 0) { + nav.push({ + type: 'module', + longname: v.longname, + prettyname: getPrettyName(v), + name: v.name, + members: members, + methods: methods, + typedefs: typedefs, + fires: v.fires, + events: events + }); + } + }); + + nav.sort(function(a, b) { + const prettyNameA = a.prettyname.toLowerCase(); + const prettyNameB = b.prettyname.toLowerCase(); + if (prettyNameA > prettyNameB) { + return 1; + } + if (prettyNameA < prettyNameB) { + return -1; + } + return 0; + }); return nav; }