UNPKG

dgeni-packages

Version:

A collection of dgeni packages for generating documentation from source code

111 lines (87 loc) 3.52 kB
const path = require('canonical-path'); const Package = require('dgeni').Package; /** * @dgPackage ngdoc * @description AngularJS specific tag-defs, processors and templates. This loads the jsdoc and nunjucks packages for you. */ module.exports = new Package('ngdoc', [ require('../jsdoc'), require('../nunjucks'), require('../links')]) .factory(require('./file-readers/ngdoc')) .factory(require('./services/getTypeClass')) .factory(require('./services/moduleMap')) .processor(require('./processors/filterNgdocs')) .processor(require('./processors/generateComponentGroups')) .processor(require('./processors/memberDocs')) .processor(require('./processors/moduleDocs')) .processor(require('./processors/providerDocs')) .processor(require('./processors/collectKnownIssues')) .config(function(readFilesProcessor, ngdocFileReader) { readFilesProcessor.fileReaders.push(ngdocFileReader); }) .config(function(parseTagsProcessor, getInjectables) { parseTagsProcessor.tagDefinitions = parseTagsProcessor.tagDefinitions.concat(getInjectables(require('./tag-defs'))); }) .config(function(templateFinder, templateEngine, getInjectables) { templateFinder.templateFolders.unshift(path.resolve(__dirname, 'templates')); templateEngine.config.tags = { variableStart: '{$', variableEnd: '$}' }; templateFinder.templatePatterns = [ '${ doc.template }', '${doc.area}/${ doc.id }.${ doc.docType }.template.html', '${doc.area}/${ doc.id }.template.html', '${doc.area}/${ doc.docType }.template.html', '${ doc.id }.${ doc.docType }.template.html', '${ doc.id }.template.html', '${ doc.docType }.template.html' ].concat(templateEngine.templatePatterns); templateEngine.filters = templateEngine.filters.concat(getInjectables([ require('./rendering/filters/code'), require('./rendering/filters/link'), require('./rendering/filters/type-class') ])); templateEngine.tags = templateEngine.tags.concat(getInjectables([require('./rendering/tags/code')])); }) .config(function(computeIdsProcessor, createDocMessage, getAliases) { computeIdsProcessor.idTemplates.push({ docTypes: ['module' ], idTemplate: 'module:${name}', getAliases: getAliases }); computeIdsProcessor.idTemplates.push({ docTypes: ['method', 'property', 'event'], getId(doc) { const parts = doc.name.split('#'); const name = parts.pop(); parts.push(doc.docType + ':' + name); return parts.join('#'); }, getAliases: getAliases }); computeIdsProcessor.idTemplates.push({ docTypes: ['provider', 'service', 'directive', 'input', 'object', 'function', 'filter', 'type' ], idTemplate: 'module:${module}.${docType}:${name}', getAliases: getAliases }); }) .config(function(computePathsProcessor, createDocMessage) { computePathsProcessor.pathTemplates.push({ docTypes: ['provider', 'service', 'directive', 'input', 'object', 'function', 'filter', 'type' ], pathTemplate: '${area}/${module}/${docType}/${name}', outputPathTemplate: 'partials/${area}/${module}/${docType}/${name}.html' }); computePathsProcessor.pathTemplates.push({ docTypes: ['module' ], pathTemplate: '${area}/${name}', outputPathTemplate: 'partials/${area}/${name}/index.html' }); computePathsProcessor.pathTemplates.push({ docTypes: ['componentGroup' ], pathTemplate: '${area}/${moduleName}/${groupType}', outputPathTemplate: 'partials/${area}/${moduleName}/${groupType}/index.html' }); });