From 06b1c9c9f94a4c503426c1377cf89d7cce49f6a5 Mon Sep 17 00:00:00 2001 From: Hubert Argasinski Date: Fri, 7 Oct 2016 19:27:56 -0400 Subject: docs: combine toc sublists into one list --- support/jsdoc/jsdoc-fix-html.js | 27 +++++++++++++++++++--- .../jsdoc/theme/static/styles/jsdoc-default.css | 24 +++++++++++++++++++ 2 files changed, 48 insertions(+), 3 deletions(-) diff --git a/support/jsdoc/jsdoc-fix-html.js b/support/jsdoc/jsdoc-fix-html.js index a45b383..b199d2a 100644 --- a/support/jsdoc/jsdoc-fix-html.js +++ b/support/jsdoc/jsdoc-fix-html.js @@ -111,11 +111,32 @@ function applyPreCheerioFixes(data) { function fixToc($page, moduleFiles) { // remove `async` listing from toc - $page.find('li').find('a[href="'+mainModuleFile+'"]').parent().remove(); + $page.find('a[href="'+mainModuleFile+'"]').parent().remove(); // change toc title - $page.find('nav').children('h3').text(pageTitle); - $page.find('nav').children('h2').remove(); + var $nav = $page.find('nav'); + $nav.attr('id', 'toc'); + $nav.children('h3').text(pageTitle); + $nav.children('h2').remove(); + + // move everything into one big ul (for Bootstrap scroll-spy) + var $ul = $nav.children('ul'); + $ul.addClass('nav').addClass('methods'); + $ul.find('.methods').each(function() { + var $methodsList = $(this); + var $methods = $methodsList.find('[data-type="method"]'); + var $parentLi = $methodsList.parent(); + + $methodsList.remove(); + $methods.remove(); + $parentLi.after($methods); + $parentLi.addClass('toc-header'); + + }); + + $page.find('[data-type="method"]').each(function() { + $(this).addClass("toc-method"); + }); // make everything point to the same 'docs.html' page _.each(moduleFiles, function(filename) { diff --git a/support/jsdoc/theme/static/styles/jsdoc-default.css b/support/jsdoc/theme/static/styles/jsdoc-default.css index 76ade41..09825ff 100644 --- a/support/jsdoc/theme/static/styles/jsdoc-default.css +++ b/support/jsdoc/theme/static/styles/jsdoc-default.css @@ -141,6 +141,30 @@ section, h1 { padding: 2em 30px 0; } +#toc > h3 { + margin-bottom: 0px; +} + +#toc > .methods > li { + padding: 0px 10px; +} + +#toc > .methods > li > a { + font-size: 12px; + padding: 0px; +} + +#toc > .methods > .toc-header { + margin-top: 10px; +} + +#toc > .methods > .toc-method > a, +#toc > .methods > .toc-method > a.active { + padding: 0px 0px 0px 20px; + border-left: 1px solid #D8DCDF; + color: #98999A; +} + .nav.navbar-right .navbar-form { padding: 0; margin: 6px 0px; -- cgit v1.2.1