angular-docs-cn/aio/tools/transforms
Pete Bacon Darwin a4f3f3f81d build(docs-infra): support doc aliases via `@alias` dgeni tag (#29673)
Now, one can add an `@alias` tag to API docs, which tells dgeni that this
API element (usually a `const`) is really just an alias for some API element
defined elsewhere.

Dgeni will then look up this API element and copy over the properties from
the alias to the current doc.

For example, we would like to privately export an Enum from `@angular/core`
but then publicly export this from `@angular/common`:

**packages/core/private_exports.ts**

```ts
/**
 * Description of this document.
 */
export enum ɵSomeEnum { ... }
```

**packages/common/public_api.ts**

```ts
import {ɵSomeEnum} from '@angular/core';

 /**
 * @alias core/ɵSomeEnum
 */
export const SomeEnum = ɵSomeEnum;
```

In the generated docs there will be a page for `common/SomeEnum`, which
will be rendered as an enum, rather than a const, showing the description
extracted from the `core/ɵSomeEnum`.

---

The implementation of this feature required some refactoring of the other
processing:

1. Previously `ɵ` prefixed exports were not even considered.
2. Due to 1. some processors needed to have guards added to ignore such
   private exports (`addMetadataAliases` and `checkContentRules`).
3. The processing of package pages had to be reworked (and split) so that
   it picked up the aliased export docs after their alias proeprties had
   been copied.

See FW-1207, FW-632, #29249

PR Close #29673
2019-04-04 10:52:36 -07:00
..
angular-api-package build(docs-infra): support doc aliases via `@alias` dgeni tag (#29673) 2019-04-04 10:52:36 -07:00
angular-base-package build(docs-infra): support doc aliases via `@alias` dgeni tag (#29673) 2019-04-04 10:52:36 -07:00
angular-content-package docs: add new getting started guide (#27684) 2019-03-29 10:47:37 -07:00
angular.io-package feat(docs-infra): generate Angular CLI command reference (#25363) 2018-09-26 11:24:02 -07:00
authors-package build: hide @angular/http for Angular v8 (#29550) 2019-04-02 10:55:31 -07:00
cli-docs-package fix(docs-infra): boolean options default value is incorrect when it's undefined (#27024) 2019-01-28 20:43:15 -08:00
content-package build(docs-infra): display github links in CLI API docs (#26515) 2018-10-19 11:12:54 -07:00
examples-package build(docs-infra): allow `""` as empty region in `{@example}` tags (#26514) 2018-10-18 09:54:17 -07:00
helpers build(aio): ensure the correct decorator properties are merged (#24289) 2018-06-06 10:23:47 -07:00
links-package build(aio): remove unused `@linkDocs` alias for `@link` jsdoc tag (#24000) 2018-06-13 16:47:40 -07:00
post-process-package style(aio): fix docs linting issues (#19702) 2017-11-01 15:24:46 -07:00
remark-package build(aio): map H3 headings into H4 headings for certain templates (#24000) 2018-06-13 16:47:40 -07:00
target-package build(aio): move the `transforms` folder into the `tools` folder 2017-04-16 22:05:23 +01:00
templates build(docs-infra): support doc aliases via `@alias` dgeni tag (#29673) 2019-04-04 10:52:36 -07:00
.eslintignore build(aio): move the `transforms` folder into the `tools` folder 2017-04-16 22:05:23 +01:00
.eslintrc.js style(aio): fix docs linting issues (#19702) 2017-11-01 15:24:46 -07:00
README.md docs(aio): tidy up tooling documentation (#18151) 2017-09-21 10:00:37 -07:00
config.js build(aio): ignore example files that are gitignored 2017-06-09 14:33:21 +01:00
test.js build(aio): ensure all doc tests are run 2017-06-21 13:51:15 -07:00

README.md

Overview

All the content that is rendered by the AIO application, and some of its configuration files, are generated from source files by Dgeni. Dgeni is a general purpose documentation generation tool.

Markdown files in /aio/content, code comments in the core Angular source files and example files are processed and transformed into files that are consumed by the AIO application.

Dgeni is configured by "packages", which contain services and processors. Some of these packages are installed as node_modules from the dgeni-packages and some are specific to the AIO project.

The project specific packages are stored in this folder (aio/tools/transforms).

If you are an author and want to know how to generate the documentation, the steps are outlined in the top level README.md.

Root packages

To run Dgeni, you must specify a root package, which acts as the entry point to the documentation generation. This root package, in turn requires a number of other packages, some are defined locally in the tools/transforms folder, such as tools/transforms/cheatsheet-package and tools/transforms/content-package, etc. And some are brought in from the dgeni-packages node modules, such as jsdoc and nunjucks.

  • The primary root package is defined in tools/transforms/angular.io-package/index.js. This package is used to run a full generation of all the documentation.
  • There are also root packages defined in tools/transforms/authors-package/*-package.js. These packages are used by the documentation authors when writing docs, since it allows them to run partial doc generation, which is not complete but is faster for quickly seeing changes to the document that you are working on.

Other packages

  • angular-base-package
  • angular-api-package
  • angular-content-package
  • content-package
  • examples-package
  • links-package
  • post-process-package
  • remark-package
  • target-package

Templates

All the templates for the angular.io dgeni transformations are stoted in the tools/transforms/templates folder. See the README.