95 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			95 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| var Package = require('dgeni').Package;
 | |
| var jsdocPackage = require('dgeni-packages/jsdoc');
 | |
| var nunjucksPackage = require('dgeni-packages/nunjucks');
 | |
| var typescriptPackage = require('../typescript-package');
 | |
| var linksPackage = require('../links-package');
 | |
| var gitPackage = require('dgeni-packages/git');
 | |
| var path = require('canonical-path');
 | |
| var fs = require('fs');
 | |
| 
 | |
| // Define the dgeni package for generating the docs
 | |
| module.exports = new Package('angular-v2-docs', [jsdocPackage, nunjucksPackage, typescriptPackage, linksPackage, gitPackage])
 | |
| 
 | |
| // Register the processors
 | |
| .processor(require('./processors/convertPrivateClassesToInterfaces'))
 | |
| .processor(require('./processors/extractDirectiveClasses'))
 | |
| .processor(require('./processors/generateNavigationDoc'))
 | |
| .processor(require('./processors/extractTitleFromGuides'))
 | |
| .processor(require('./processors/createOverviewDump'))
 | |
| .processor(require('./processors/checkUnbalancedBackTicks'))
 | |
| .processor(require('./processors/convertBackticksToCodeBlocks'))
 | |
| .processor(require('./processors/addNotYetDocumentedProperty'))
 | |
| 
 | |
| // Configure the log service
 | |
| .config(function(log) {
 | |
|   log.level = 'info';
 | |
| })
 | |
| 
 | |
| .config(function(parseTagsProcessor) {
 | |
|   parseTagsProcessor.tagDefinitions.push({ name: 'internal', transforms: function() { return true; } });
 | |
|   parseTagsProcessor.tagDefinitions.push({ name: 'syntax' });
 | |
|   parseTagsProcessor.tagDefinitions.push({ name: 'noDescription', transforms: function() { return true; } });
 | |
| })
 | |
| 
 | |
| .config(function(renderDocsProcessor, versionInfo) {
 | |
|   renderDocsProcessor.extraData.versionInfo = versionInfo;
 | |
| })
 | |
| 
 | |
| // Configure file reading
 | |
| .config(function(readTypeScriptModules) {
 | |
| 
 | |
|   var angular_repo_path =  path.resolve(__dirname, '../../../../angular');
 | |
|   // confirm that the angular repo is actually there.
 | |
|   if (!fs.existsSync(angular_repo_path)) {
 | |
|     throw new Error('build-api-docs task requires the angular2 repo to be at ' + angular_repo_path);
 | |
|   }
 | |
|   readTypeScriptModules.sourceFiles = [
 | |
|     '*/*.@(js|es6|ts)',
 | |
|     '*/src/**/*.@(js|es6|ts)'
 | |
|   ];
 | |
|   readTypeScriptModules.basePath = path.resolve(angular_repo_path, 'modules');
 | |
| })
 | |
| 
 | |
| 
 | |
| .config(function(parseTagsProcessor, getInjectables) {
 | |
|   // We actually don't want to parse param docs in this package as we are getting the data out using TS
 | |
|   // TODO: rewire the param docs to the params extracted from TS
 | |
|   parseTagsProcessor.tagDefinitions.forEach(function(tagDef) {
 | |
|     if (tagDef.name === 'param') {
 | |
|       tagDef.docProperty = 'paramData';
 | |
|       tagDef.transforms = [];
 | |
|     }
 | |
|   });
 | |
| 
 | |
| })
 | |
| 
 | |
| 
 | |
| // Configure links
 | |
| .config(function(getLinkInfo) {
 | |
|   getLinkInfo.useFirstAmbiguousLink = true;
 | |
| })
 | |
| 
 | |
| 
 | |
| // Configure file writing
 | |
| .config(function(writeFilesProcessor) {
 | |
|   writeFilesProcessor.outputFolder  = 'dist/docs';
 | |
| })
 | |
| 
 | |
| 
 | |
| // Configure rendering
 | |
| .config(function(templateFinder, templateEngine) {
 | |
| 
 | |
|   // Nunjucks and Angular conflict in their template bindings so change Nunjucks
 | |
|   templateEngine.config.tags = {
 | |
|     variableStart: '{$',
 | |
|     variableEnd: '$}'
 | |
|   };
 | |
| 
 | |
|   templateFinder.templatePatterns = [
 | |
|     '${ doc.template }',
 | |
|     '${ doc.id }.${ doc.docType }.template.html',
 | |
|     '${ doc.id }.template.html',
 | |
|     '${ doc.docType }.template.html',
 | |
|     'common.template.html'
 | |
|   ];
 | |
| }); |