Skip to content

ionic-team/capacitor-docgen

Repository files navigation

@capacitor/docgen

Docs Readme Markdown and JSON Generator for Capacitor Plugins.

  • Designed specifically for generating docs for Capacitor plugins using TypeScript
  • Generates docs data pulled from JSDocs within source code
  • Replaces placeholders within existing README.md markdown files with the generated docs
  • Outputs a json file of the raw docs data
  • Ideal for formatted docs within Github and NPM readme landing pages
  • If you're looking for an entire docs site generator we recommend TypeDoc instead
npm i @capacitor/docgen --save-dev

Example Readme File

# My Capacitor Plugin 🔌

The readme file can be formatted however you'd like. Just insert
the docgen placeholder elements where the index of the API methods,
and the API docs should go.

Below is an index of all the methods available.

<docgen-index></docgen-index>

## Custom Readme Content

Manage your readme content however, and on every `docgen` rebuild
it will leave the original content as is, but update the inner text 
of the docgen placeholder elements with the updated generated docs.

<docgen-api></docgen-api>

## Commit Your Readme 🚀

The benefit of this readme file is that is also acts as the landing 
page for the Github repo and NPM package, and the anchors within the 
docs can also be linked to and shared.

CLI

The easiest way to run docgen is to install @capacitor/docgen as a dev dependency and add the command to the package.json scripts. In the example below, HapticsPlugin is the primary interface:

docgen --api HapticsPlugin --output-readme README.md
Flag Alias Description
--api -a The name of the primary application programming interface. Required
--output-readme -r Path to the markdown file to update. Note that the file must already exist. Required
--output-json -j Path to write the raw docs data as a json file.
--project -p Path to the project's tsconfig.json file, same as the project flag for TypeScript's CLI. By default it'll attempt to find this file.

package.json script

{
  "scripts": {
    "docgen": "docgen --api HapticsPlugin --output-readme README.md"
  }
}

API

The same API that's available to the CLI can also be imported from @capacitor/docgen.

Related