50 lines
1.5 KiB
JavaScript
50 lines
1.5 KiB
JavaScript
module.exports = function generateNavigationDoc() {
|
|
|
|
return {
|
|
$runAfter: ['extra-docs-added'],
|
|
$runBefore: ['rendering-docs'],
|
|
outputFolder: '',
|
|
$validate: {outputFolder: {presence: true}},
|
|
$process: function(docs) {
|
|
var modulesDoc = {
|
|
docType: 'data-module',
|
|
value: {api: {sections: []}, guide: {pages: []}},
|
|
path: this.outputFolder + '/navigation',
|
|
outputPath: this.outputFolder + '/navigation.ts',
|
|
serviceName: 'NAVIGATION'
|
|
};
|
|
|
|
docs.forEach(function(doc) {
|
|
if (doc.docType === 'module') {
|
|
var moduleNavItem =
|
|
{path: doc.path, partial: doc.outputPath, name: doc.id, type: 'module', pages: []};
|
|
|
|
modulesDoc.value.api.sections.push(moduleNavItem);
|
|
|
|
doc.exports.forEach(function(exportDoc) {
|
|
if (!exportDoc.internal) {
|
|
var exportNavItem = {
|
|
path: exportDoc.path,
|
|
partial: exportDoc.outputPath,
|
|
name: exportDoc.name,
|
|
type: exportDoc.docType
|
|
};
|
|
moduleNavItem.pages.push(exportNavItem);
|
|
}
|
|
});
|
|
}
|
|
});
|
|
|
|
docs.forEach(function(doc) {
|
|
if (doc.docType === 'guide') {
|
|
console.log('guide', doc.name);
|
|
var guideDoc = {path: doc.path, partial: doc.outputPath, name: doc.name, type: 'guide'};
|
|
modulesDoc.value.guide.pages.push(guideDoc);
|
|
}
|
|
});
|
|
|
|
docs.push(modulesDoc);
|
|
}
|
|
};
|
|
};
|