vuepress-plugin-typedoc
A VuePress plugin to build API documentation with typedoc.

What does it do?
- Generates pages in Markdown as part of the build.
- Generates sidebar configuration.
Installation
Install in the same location as your VuePress project root.
npm install typedoc typedoc-plugin-markdown vuepress-plugin-typedoc --save-dev
Usage
v1.x
.vuepress/config.js
plugins: [
[
'vuepress-plugin-typedoc',
{
entryPoints: ['../src/index.ts'],
tsconfig: '../tsconfig.json'
},
],
],
v2.x
.vuepress/config.ts
import { defaultTheme } from 'vuepress';
import { typedocPlugin } from 'vuepress-plugin-typedoc/next';
module.exports = {
theme: defaultTheme({}),
plugins: [
typedocPlugin({
entryPoints: ['../src/index.ts'],
tsconfig: '../tsconfig.json',
}),
],
};
Typical project structure
docs/ (Vuepress website root)
│ └── .vuepress
│ │ └── config.js|ts
│ │ └── dist/ (static site dir)
│ └── api/ (output directory / compiled typedoc markdown)
├── package.json
├─ ─src (typescript source files)
├── tsconfig.json
Options
TypeDoc options
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 in tsconfig.json.
Note: Options declared in this manner will take priority and overwrite options declared in docusaurus.config.js.
Plugin options
In addition to TypeDoc options there are some custom plugin options that can be configured.
out | "api" | Output directory relative to docs directory. |
hideInPageTOC | false | Do not render in-page table of contents items. |
sidebar.autoConfiguration | true | Set to false to disable auto sidebar configuration. |
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. |
Example options object
{
entryPoints: ['../src/index.ts'],
tsconfig: '../tsconfig.json',
cleanOutputDir: true
out: 'api',
sidebar: {
fullNames: true,
parentCategory: 'API',
}
}
License
MIT