The createDecoratorDocs processor identifies docs of exports that actually represent decorators and get useful information for them. This commit also set up the rest of the generation to display these new decorator docs with their own template and updates the API list so that we can filter the docs by decorator docType.
143 lines
4.3 KiB
JavaScript
143 lines
4.3 KiB
JavaScript
var path = require('canonical-path');
|
|
var Package = require('dgeni').Package;
|
|
var basePackage = require('../docs-package');
|
|
var targetPackage = require('../target-package');
|
|
var cheatsheetPackage = require('../cheatsheet-package');
|
|
|
|
var PROJECT_PATH = path.resolve(__dirname, "../../..");
|
|
var PUBLIC_PATH = path.resolve(PROJECT_PATH, 'public');
|
|
var DOCS_PATH = path.resolve(PUBLIC_PATH, 'docs');
|
|
var ANGULAR2_DOCS_PATH = path.resolve(__dirname, '../../../../angular/modules/angular2/docs');
|
|
|
|
|
|
module.exports = new Package('angular.io', [basePackage, targetPackage, cheatsheetPackage])
|
|
|
|
.factory(require('./services/renderMarkdown'))
|
|
.processor(require('./processors/addJadeDataDocsProcessor'))
|
|
.processor(require('./processors/filterUnwantedDecorators'))
|
|
.processor(require('./processors/extractDirectiveClasses'))
|
|
.processor(require('./processors/matchUpDirectiveDecorators'))
|
|
.processor(require('./processors/filterMemberDocs'))
|
|
|
|
// overrides base packageInfo and returns the one for the 'angular/angular' repo.
|
|
.factory(require('./services/packageInfo'))
|
|
|
|
// Configure rendering
|
|
.config(function(templateFinder, templateEngine, renderDocsProcessor) {
|
|
|
|
templateFinder.templateFolders
|
|
.unshift(path.resolve(__dirname, 'templates'));
|
|
|
|
// helpers are made available to the nunjucks templates
|
|
renderDocsProcessor.helpers.relativePath = function(from, to) {
|
|
return path.relative(from, to);
|
|
};
|
|
})
|
|
|
|
.config(function(parseTagsProcessor) {
|
|
parseTagsProcessor.tagDefinitions.push({ name: 'internal', transforms: function() { return true; } });
|
|
})
|
|
|
|
.config(function(readTypeScriptModules, writeFilesProcessor, readFilesProcessor) {
|
|
|
|
readTypeScriptModules.sourceFiles = [
|
|
'angular2/animate.ts',
|
|
'angular2/common.ts',
|
|
'angular2/compiler.ts',
|
|
'angular2/core.ts',
|
|
'angular2/http.ts',
|
|
'angular2/http/testing.ts',
|
|
'angular2/instrumentation.ts',
|
|
'angular2/platform/browser.ts',
|
|
'angular2/router.ts',
|
|
'angular2/router/testing.ts',
|
|
'angular2/testing.ts'
|
|
];
|
|
readTypeScriptModules.hidePrivateMembers = true;
|
|
|
|
readFilesProcessor.basePath = DOCS_PATH;
|
|
readFilesProcessor.sourceFiles = [{
|
|
basePath: ANGULAR2_DOCS_PATH,
|
|
include: path.resolve(ANGULAR2_DOCS_PATH, 'cheatsheet/*.md')
|
|
}];
|
|
})
|
|
|
|
.config(function(getLinkInfo) {
|
|
getLinkInfo.useFirstAmbiguousLink = false;
|
|
})
|
|
|
|
|
|
.config(function(readFilesProcessor, generateNavigationDoc, createOverviewDump) {
|
|
// Clear out unwanted processors
|
|
generateNavigationDoc.$enabled = false;
|
|
})
|
|
|
|
|
|
.config(function(computeIdsProcessor, computePathsProcessor, EXPORT_DOC_TYPES) {
|
|
|
|
computePathsProcessor.pathTemplates.push({
|
|
docTypes: ['module'],
|
|
getPath: function computeModulePath(doc) {
|
|
doc.moduleFolder = doc.id.replace(/^angular2\//, '');
|
|
return doc.moduleFolder + '/index.html';
|
|
},
|
|
getOutputPath: function computeModulePath(doc) {
|
|
return doc.moduleFolder + '/index.jade';
|
|
}
|
|
});
|
|
|
|
computePathsProcessor.pathTemplates.push({
|
|
docTypes: EXPORT_DOC_TYPES,
|
|
pathTemplate: '${moduleDoc.moduleFolder}/${name}-${docType}.html',
|
|
outputPathTemplate:'${moduleDoc.moduleFolder}/${name}-${docType}.jade',
|
|
});
|
|
|
|
|
|
computePathsProcessor.pathTemplates.push({
|
|
docTypes: ['decorator'],
|
|
pathTemplate: '${moduleDoc.moduleFolder}/${name}-${docType}.html',
|
|
outputPathTemplate:'${moduleDoc.moduleFolder}/${name}-${docType}.jade',
|
|
});
|
|
|
|
computePathsProcessor.pathTemplates.push({
|
|
docTypes: ['jade-data'],
|
|
pathTemplate: '${originalDoc.moduleFolder}/_data',
|
|
outputPathTemplate: '${path}.json'
|
|
});
|
|
|
|
computePathsProcessor.pathTemplates.push({
|
|
docTypes: ['api-list-data'],
|
|
pathTemplate: 'api-list.json',
|
|
outputPathTemplate: '${path}'
|
|
});
|
|
|
|
computePathsProcessor.pathTemplates.push({
|
|
docTypes: ['cheatsheet-data'],
|
|
pathTemplate: '../guide/cheatsheet.json',
|
|
outputPathTemplate: '${path}'
|
|
});
|
|
})
|
|
|
|
.config(function(getLinkInfo) {
|
|
getLinkInfo.relativeLinks = true;
|
|
})
|
|
|
|
|
|
.config(function(templateEngine, getInjectables) {
|
|
templateEngine.filters = templateEngine.filters.concat(getInjectables([
|
|
require('./rendering/trimBlankLines'),
|
|
require('./rendering/toId'),
|
|
require('./rendering/indentForMarkdown')
|
|
]));
|
|
})
|
|
|
|
.config(function(filterUnwantedDecorators, log) {
|
|
log.level = 'info';
|
|
filterUnwantedDecorators.decoratorsToIgnore = [
|
|
'CONST',
|
|
'IMPLEMENTS',
|
|
'ABSTRACT'
|
|
];
|
|
})
|
|
|