69 lines
2.9 KiB
JavaScript
69 lines
2.9 KiB
JavaScript
const {resolve} = require('canonical-path');
|
|
const semver = require('semver');
|
|
const Package = require('dgeni').Package;
|
|
const basePackage = require('../angular-base-package');
|
|
const contentPackage = require('../content-package');
|
|
const {CONTENTS_PATH, TEMPLATES_PATH, requireFolder} = require('../config');
|
|
const CLI_SOURCE_ROOT = resolve(CONTENTS_PATH, 'cli-src');
|
|
const CLI_SOURCE_PATH = resolve(CLI_SOURCE_ROOT, 'node_modules/@angular/cli');
|
|
const CLI_SOURCE_HELP_PATH = resolve(CLI_SOURCE_PATH, 'help');
|
|
|
|
// Define the dgeni package for generating the docs
|
|
module.exports =
|
|
new Package('cli-docs', [basePackage, contentPackage])
|
|
|
|
// Register the services and file readers
|
|
.factory(require('./readers/cli-command'))
|
|
|
|
// Register the processors
|
|
.processor(require('./processors/processCliContainerDoc'))
|
|
.processor(require('./processors/processCliCommands'))
|
|
.processor(require('./processors/filterHiddenCommands'))
|
|
|
|
// Configure file reading
|
|
.config(function(readFilesProcessor, cliCommandFileReader) {
|
|
readFilesProcessor.fileReaders.push(cliCommandFileReader);
|
|
readFilesProcessor.sourceFiles = readFilesProcessor.sourceFiles.concat([
|
|
{
|
|
basePath: CLI_SOURCE_HELP_PATH,
|
|
include: resolve(CLI_SOURCE_HELP_PATH, '*.json'),
|
|
fileReader: 'cliCommandFileReader'
|
|
},
|
|
{
|
|
basePath: CONTENTS_PATH,
|
|
include: resolve(CONTENTS_PATH, 'cli/**'),
|
|
fileReader: 'contentFileReader'
|
|
},
|
|
]);
|
|
})
|
|
|
|
.config(function(templateFinder, templateEngine, getInjectables) {
|
|
// Where to find the templates for the CLI doc rendering
|
|
templateFinder.templateFolders.unshift(resolve(TEMPLATES_PATH, 'cli'));
|
|
// Add in templating filters and tags
|
|
templateEngine.filters = templateEngine.filters.concat(
|
|
getInjectables(requireFolder(__dirname, './rendering')));
|
|
})
|
|
|
|
|
|
.config(function(renderDocsProcessor) {
|
|
|
|
const cliPackage = require(resolve(CLI_SOURCE_PATH, 'package.json'));
|
|
const repoUrlParts = cliPackage.repository.url.replace(/\.git$/, '').split('/');
|
|
const version = `v${semver.clean(cliPackage.version)}`;
|
|
const repo = repoUrlParts.pop();
|
|
const owner = repoUrlParts.pop();
|
|
const cliVersionInfo = {gitRepoInfo: {owner, repo}, currentVersion: {raw: version}};
|
|
|
|
// Add the cli version data to the renderer, for use in things like github links
|
|
renderDocsProcessor.extraData.cliVersionInfo = cliVersionInfo;
|
|
})
|
|
|
|
|
|
.config(function(convertToJsonProcessor, postProcessHtml) {
|
|
convertToJsonProcessor.docTypes =
|
|
convertToJsonProcessor.docTypes.concat(['cli-command', 'cli-overview']);
|
|
postProcessHtml.docTypes =
|
|
postProcessHtml.docTypes.concat(['cli-command', 'cli-overview']);
|
|
});
|