From 068af321a24e9cbb58ee75e4211ed60aaa566e5d Mon Sep 17 00:00:00 2001 From: craig-clephane Date: Mon, 7 Jun 2021 13:11:19 +0100 Subject: [PATCH 1/3] Update publish.js Applied dropdowns on categories, and added search by file name --- publish.js | 98 +++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 68 insertions(+), 30 deletions(-) diff --git a/publish.js b/publish.js index 2ca79b1..163150a 100644 --- a/publish.js +++ b/publish.js @@ -1,5 +1,4 @@ 'use strict' - var doop = require('jsdoc/util/doop') var env = require('jsdoc/env') var fs = require('jsdoc/fs') @@ -240,6 +239,7 @@ function generate(title, subtitle, docs, filename, resolveLinks) { } outpath = path.join(outdir, filename) + html = view.render('container.tmpl', docData) if (resolveLinks) { @@ -261,6 +261,7 @@ function generateSourceFiles(sourceFiles, encoding) { try { source = { kind: 'source', + file: sourceFiles[file].shortened, code: helper.htmlsafe( fs.readFileSync(sourceFiles[file].resolved, encoding) ) } } @@ -318,6 +319,7 @@ function buildMemberNav(items, itemHeading, itemsSeen, linktoFn) { const subCategories = items.reduce((memo, item) => { const subCategory = item.subCategory || '' memo[subCategory] = memo[subCategory] || [] + console.log(memo[subCategory]) return { ...memo, [subCategory]: [...memo[subCategory], item] @@ -327,7 +329,7 @@ function buildMemberNav(items, itemHeading, itemsSeen, linktoFn) { const subCategoryNames = Object.keys(subCategories) var nav = '' - + // console.log(items, itemHeading, itemsSeen, linktoFn) subCategoryNames.forEach((subCategoryName) => { const subCategoryItems = subCategories[subCategoryName] if (subCategoryItems.length) { @@ -335,9 +337,11 @@ function buildMemberNav(items, itemHeading, itemsSeen, linktoFn) { subCategoryItems.forEach(function(item) { var displayName + + var filename = item.filename if ( !hasOwnProp.call(item, 'longname') ) { - itemsNav += '
  • ' + linktoFn('', item.name) + '
  • ' + itemsNav += '' } else if ( !hasOwnProp.call(itemsSeen, item.longname) ) { if (env.conf.templates.default.useLongnameInNav) { @@ -345,7 +349,7 @@ function buildMemberNav(items, itemHeading, itemsSeen, linktoFn) { } else { displayName = item.name } - itemsNav += '
  • ' + linktoFn(item.longname, displayName.replace(/\b(module|event):/g, '')) + itemsNav += '
  • ' + linkto(g.longname, g.name) + '
  • ' - } - seen[g.longname] = true - }) + - if (!globalNav) { - // turn the heading into a link so you can actually get to the global page - nav += '

    ' + linkto('global', 'Global') + '

    ' - } - else { - nav += '

    Global

    ' + if (members.globals && members.globals.length) { + globalNav = '' + + members.globals.forEach(function(g) { + var filename = g.filename + if ( g.kind !== 'typedef' && !hasOwnProp.call(seen, g.longname) ) { + globalNav += '' + } + seen[g.longname] = true + }) + + if (!globalNav) { + // turn the heading into a link so you can actually get to the global page + nav += '

    ' + linkto('global', 'Global') + '

    ' + } + else { + nav += '

    Global

    ' + globalNav + } } - } + nav += '' nav += '' return nav } @@ -445,7 +467,8 @@ function buildGroupNav (members, title) { */ function buildNav(members, navTypes = null, betterDocs) { const href = betterDocs.landing ? 'docs.html' : 'index.html' - var nav = navTypes ? '' : `

    Documentation

    ` + var nav = navTypes ? '' : '' + // var nav = navTypes ? '' : `

    Documentation

    ` var categorised = {} var rootScope = {} @@ -467,8 +490,8 @@ function buildNav(members, navTypes = null, betterDocs) { } }) }) - - nav += buildGroupNav(rootScope) + + nav += buildGroupNav(rootScope, 'Core') Object.keys(categorised).sort().forEach(function (category) { nav += buildGroupNav(categorised[category], category) }) @@ -476,6 +499,16 @@ function buildNav(members, navTypes = null, betterDocs) { return nav } +function addFilename (f, filename) { + f.filename = filename + + // var types = f.type ? buildItemTypeStrings(f) : [] + + // f.signature = (f.signature || '') + '' + + // (types.length ? ' :' + types.join('|') : '') + '' + +} + /** @param {TAFFY} taffyData See . @param {object} opts @@ -654,6 +687,12 @@ exports.publish = function(taffyData, opts, tutorials) { addSignatureReturns(doclet) addAttribs(doclet) } + if(doclet.meta) { + var filename = getPathFromDoclet(doclet) + filename = sourceFiles[filename].shortened + addFilename(doclet, filename) + } + }) // do this after the urls have all been generated @@ -673,7 +712,6 @@ exports.publish = function(taffyData, opts, tutorials) { }) view.smallHeader = !conf.betterDocs.navButtons - members = helper.getMembers(data) if (opts.tutorials) { // sort tutorials @@ -707,8 +745,8 @@ exports.publish = function(taffyData, opts, tutorials) { view.tutoriallink = tutoriallink; view.htmlsafe = htmlsafe view.outputSourceFiles = outputSourceFiles - // once for all + // console.log(members) view.nav = buildNav(members, null, conf.betterDocs) view.tutorialsNav = buildNav(members, ['tutorials'], conf.betterDocs) From bde40e8d1695e8977bc78b3bd3eb15a85b638feb Mon Sep 17 00:00:00 2001 From: craig-clephane Date: Tue, 8 Jun 2021 11:51:09 +0100 Subject: [PATCH 2/3] Update publish.js Added file structure, swapped categories to files --- publish.js | 150 ++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 137 insertions(+), 13 deletions(-) diff --git a/publish.js b/publish.js index 163150a..a7c9a2a 100644 --- a/publish.js +++ b/publish.js @@ -11,6 +11,7 @@ var util = require('util') const { getParser } = require('jsdoc/util/markdown') var bundler = require('./bundler') +const { exit } = require('process') const markdownParser = getParser() var htmlsafe = helper.htmlsafe @@ -319,7 +320,7 @@ function buildMemberNav(items, itemHeading, itemsSeen, linktoFn) { const subCategories = items.reduce((memo, item) => { const subCategory = item.subCategory || '' memo[subCategory] = memo[subCategory] || [] - console.log(memo[subCategory]) + // console.log(memo[subCategory]) return { ...memo, [subCategory]: [...memo[subCategory], item] @@ -349,6 +350,7 @@ function buildMemberNav(items, itemHeading, itemsSeen, linktoFn) { } else { displayName = item.name } + itemsNav += '