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);
|
||
|
}
|
||
|
};
|
||
|
};
|