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; }