Skip to main content

nxdoc

This package is unstable! Documentation formatting could change in the future. See something that you think should be different? Open an issue on github and help shape this plugin.

[!NOTE]
This plugin was formerly published as @nx-dotnet/nxdoc. It was moved due to not being relevant to .NET and to decouple the releases. To view previous versions and changelogs checkout the nx-dotnet repo

Prerequisites

  • Have an existing nx workspace containing an Nx plugin project. For creating this, see nrwl's documentation.

Installation

NPM

npm i --save-dev nxdoc

PNPM

pnpm i --save-dev nxdoc

Yarn

yarn add --dev nxdoc

Usage

To get started, run the following command to configure docs generation for your plugin project:

nx generate nxdoc:configuration --project=my-plugin

This will add a target to your plugin's project.json file that will generate documentation for your plugin. You can then run the following command to generate the documentation:

nx run my-plugin:generate-docs

By default, this will output the documentation to docs/my-plugin. You can customize this by passing the outputDirectory option to the generate-docs target. For example, if we only have one plugin in our workspace, we can output the documentation to the root of the workspace:

{
"targets": {
"generate-docs": {
"executor": "nxdoc:generate-docs",
"options": {
"project": "my-plugin",
"outputDirectory": "docs",
"root": true
}
}
}
}

Multiple Project Documentation

What if we have multiple plugins in our workspace? We can generate documentation for each plugin by creating a target for each plugin. For example, if we have two plugins, my-plugin and my-other-plugin, we can run the configuration generator for each. Then we can run the generate-docs target for each plugin:


nx generate nxdoc:configuration --project=my-plugin
nx generate nxdoc:configuration --project=my-other-plugin
nx run-many -t generate-docs

By default, this will output the documentation to docs/my-plugin and docs/my-other-plugin. There will not be anything that ties the documentation together though. As such, we provide another executor / generator pair to generate a landing page for the documentation. You can either run this generator manually as below:

nx generate nxdoc:generate-index

or you can add it to a project's project.json file as a target:

{
"targets": {
"generate-index": {
"executor": "nxdoc:generate-index"
}
}
}

Generators

generate-docs

Generator for generating documentation for a single project.

configuration

Generates a target configuration for generating documentation for a given plugin.

generate-index

Generator for generating an index that ties multiple projects together.

Executors

generate-docs

Executor for generating documentation for a single project.

generate-index

Executor for generating an index that ties multiple projects together.