nxdoc

An Nx plugin to generate documentation for other nx plugins

Downloads
300
Stars
2

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"
    }
  }
}