From 797d57806450834feef4d4fae77ed51566fb5c18 Mon Sep 17 00:00:00 2001 From: Nathan Willson Date: Wed, 30 May 2018 13:41:22 -0700 Subject: [PATCH 1/2] link directly to page if sidebar item has no contents --- assets/js/template-helpers/isEmptyNode.js | 19 +++ assets/js/templates/sidebar-items.handlebars | 137 ++++++++++--------- 2 files changed, 89 insertions(+), 67 deletions(-) create mode 100644 assets/js/template-helpers/isEmptyNode.js diff --git a/assets/js/template-helpers/isEmptyNode.js b/assets/js/template-helpers/isEmptyNode.js new file mode 100644 index 000000000..60a005d48 --- /dev/null +++ b/assets/js/template-helpers/isEmptyNode.js @@ -0,0 +1,19 @@ +export default function (node, options) { + var nodeItems = [ + node.types, + node.functions, + node.macros, + node.callbacks, + node.headers + ].filter(Array.isArray); + + if (flatten(nodeItems).length === 0){ + return options.fn(this); + } else { + return options.inverse(this); + } +} + +function flatten(array) { + return array.reduce(function(a, b){ return a.concat(b);}, []) +} diff --git a/assets/js/templates/sidebar-items.handlebars b/assets/js/templates/sidebar-items.handlebars index 6ab476ea4..44320a015 100644 --- a/assets/js/templates/sidebar-items.handlebars +++ b/assets/js/templates/sidebar-items.handlebars @@ -8,76 +8,79 @@ {{!-- When visiting a module page, the link to this module page in the menu should not link to a new page, instead should link to the top of the page itself. --}} + {{#isEmptyNode node}} + {{node.title}} + {{else}} + {{node.title}} - {{node.title}} - - + {{/isEmptyNode}} {{/each}} From 92cd26cd817d1b2cc170a04f00a9b2c880bfa089 Mon Sep 17 00:00:00 2001 From: Nathan Willson Date: Wed, 30 May 2018 14:31:15 -0700 Subject: [PATCH 2/2] refactor isEmptyNode --- assets/js/template-helpers/isEmptyNode.js | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/assets/js/template-helpers/isEmptyNode.js b/assets/js/template-helpers/isEmptyNode.js index 60a005d48..131b9378d 100644 --- a/assets/js/template-helpers/isEmptyNode.js +++ b/assets/js/template-helpers/isEmptyNode.js @@ -1,19 +1,17 @@ export default function (node, options) { var nodeItems = [ + node.headers, node.types, node.functions, node.macros, - node.callbacks, - node.headers - ].filter(Array.isArray); + node.callbacks + ] - if (flatten(nodeItems).length === 0){ - return options.fn(this); - } else { - return options.inverse(this); + for (var i = 0; i < nodeItems.length; i++) { + if (Array.isArray(nodeItems[i]) && (nodeItems[i].length > 0)) { + return options.inverse(this) + } } -} -function flatten(array) { - return array.reduce(function(a, b){ return a.concat(b);}, []) + return options.fn(this) }