A VuePress plugin to build documentation with TypeDoc.
- Generates pages as part of the build.
- Adds Front Matter to pages.
- Generates sidebars config to enable navigation.
Install in the same location as the VuePress root directory.
This guide assumes that a VuePress project has been setup. See getting started docs.
npm install typedoc typedoc-plugin-markdown vuepress-plugin-typedoc --save-dev
Add the plugin to .vuepress/config.js
and specify the required options (see options).
plugins: [
[
'vuepress-plugin-typedoc',
// Plugin / TypeDoc options
{
entryPoints: ['../src/index.ts'],
tsconfig: '../tsconfig.json'
},
],
],
TypeDoc will be bootstraped with the Vuepress dev
and build
cli commands:
"dev": "vuepress dev [targetDir]",
"build": "vuepress build [targetDir]",
Once built the docs will be available at /api
or equivalent out directory.
docs/ (Vuepress website root)
├── src/
│ └── .vuepress
│ │ └───config.js
│ │ └───dist/ (static site dir)
│ └── api/ (compiled typedoc markdown)
├── package.json
To configure TypeDoc, pass any relevant TypeDoc options to the config.
At a minimum the entryPoints
and tsconfig
options will need to be set.
entryPoints: ['../src/index.ts'],
tsconfig: '../tsconfig.json'
Additional TypeDoc plugins will need to be explicitly set:
plugin:['typedoc-plugin-xyz']
TypeDoc options can also be declared:
- Using a
typedoc.json
file. - Under the
typedocOptions
key intsconfig.json
.
Note: Options declared in this manner will take priority and overwrite options declared in docusaurus.config.js
.
Name | Default | Description |
---|---|---|
out |
"api" |
Output directory relative to docs directory. |
hideInPageTOC |
false |
Do not render in-page table of contents items. |
sidebar.fullNames |
false |
Display full names with module path if applicable. |
sidebar.parentCategory |
"API" |
The parent category label for sidebar. Pass "none" for no parent category. |
plugins: [
[
'vuepress-plugin-typedoc',
{
// TypeDoc options
entryPoints: ['../src/index.ts'],
tsconfig: '../tsconfig.json',
// Plugin options
out: 'api',
sidebar: {
fullNames: true,
parentCategory: 'API',
},
},
],
],