From 6fcf544528da04ba2b081ae9f1cbb723600bcac6 Mon Sep 17 00:00:00 2001 From: Peter Bacon Darwin Date: Sat, 15 Feb 2014 16:05:45 +0000 Subject: chore(doc-gen): fix navGroup hrefs --- docs/config/processors/pages-data.js | 46 +++++++++++++++++++++--------------- 1 file changed, 27 insertions(+), 19 deletions(-) (limited to 'docs/config/processors/pages-data.js') diff --git a/docs/config/processors/pages-data.js b/docs/config/processors/pages-data.js index a7930fd0..35ed242f 100644 --- a/docs/config/processors/pages-data.js +++ b/docs/config/processors/pages-data.js @@ -10,23 +10,31 @@ var AREA_NAMES = { error: 'Error Reference' }; -function getNavGroup(navGroupPages, groupName, pageSorter, pageMapper) { +function getNavGroup(pages, area, pageSorter, pageMapper) { - var navItems = _(navGroupPages) + var navItems = _(pages) + // We don't want the child to include the index page as this is already catered for + .omit(function(page) { return page.id === 'index'; }) + + // Apply the supplied sorting function .sortBy(pageSorter) + + // Apply the supplied mapping function .map(pageMapper) + .value(); return { - name: groupName, + name: area.name, type: 'group', + href: area.id, navItems: navItems }; } var navGroupMappers = { - api: function(areaPages, areaName) { + api: function(areaPages, area) { var navGroups = _(areaPages) .filter('module') // We are not interested in docs that are not in a module @@ -80,8 +88,8 @@ var navGroupMappers = { .value(); return navGroups; }, - tutorial: function(pages, areaName) { - return [getNavGroup(pages, areaName, 'step', function(page) { + tutorial: function(pages, area) { + return [getNavGroup(pages, area, 'step', function(page) { return { name: page.name, step: page.step, @@ -90,8 +98,8 @@ var navGroupMappers = { }; })]; }, - error: function(pages, areaName) { - return [getNavGroup(pages, areaName, 'path', function(page) { + error: function(pages, area) { + return [getNavGroup(pages, area, 'path', function(page) { return { name: page.name, href: page.path, @@ -99,8 +107,8 @@ var navGroupMappers = { }; })]; }, - pages: function(pages, areaName) { - return [getNavGroup(pages, areaName, 'path', function(page) { + pages: function(pages, area) { + return [getNavGroup(pages, area, 'path', function(page) { return { name: page.name, href: page.path, @@ -134,7 +142,7 @@ module.exports = { // We are only interested in docs that are in a area and not landing pages var navPages = _.filter(docs, function(page) { - return page.area && page.docType != 'landingPage'; + return page.area && page.docType != 'componentGroup'; }); // Generate an object collection of pages that is grouped by area e.g. @@ -157,15 +165,15 @@ module.exports = { var areas = {}; _(navPages) .groupBy('area') - .forEach(function(pages, areaName) { - var navGroupMapper = navGroupMappers[areaName] || navGroupMappers['pages']; - var areaTitle = AREA_NAMES[areaName]; - - areas[areaName] = { - id: areaName, - name: areaTitle, - navGroups: navGroupMapper(pages, areaTitle) + .forEach(function(pages, areaId) { + var area = { + id: areaId, + name: AREA_NAMES[areaId] }; + areas[areaId] = area; + + var navGroupMapper = navGroupMappers[area.id] || navGroupMappers['pages']; + area.navGroups = navGroupMapper(pages, area); }); _.forEach(docs, function(doc) { -- cgit v1.2.3