UNPKG

vuepress-plugin-typedoc

Version:
141 lines (102 loc) 4.26 kB
# vuepress-plugin-typedoc A [VuePress](https://vuepress.vuejs.org/) plugin to build API documentation with [typedoc](https://github.com/TypeStrong/typedoc). [![npm](https://img.shields.io/npm/v/vuepress-plugin-typedoc.svg)](https://www.npmjs.com/package/vuepress-plugin-typedoc) ![CI](https://github.com/tgreyuk/typedoc-plugin-markdown/actions/workflows/ci.yml/badge.svg?branch=master) ## 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. ```shell npm install typedoc typedoc-plugin-markdown vuepress-plugin-typedoc --save-dev ``` ## Usage ### v1.x - Setup a VuePress project https://v1.vuepress.vuejs.org/guide/getting-started.html. - Add the plugin to `.vuepress/config.js` and specify the required options (see [options](#options)). - TypeDoc will be bootstraped with the Vuepress `dev` and `build` [cli commands](https://vuepress.vuejs.org/api/cli.html). #### `.vuepress/config.js` ```js plugins: [ [ 'vuepress-plugin-typedoc', // plugin options { entryPoints: ['../src/index.ts'], tsconfig: '../tsconfig.json' }, ], ], ``` ### v2.x - Setup a VuePress v2 project https://v2.vuepress.vuejs.org/guide/getting-started.html. - Using a plugin via string is not supported. Import the plugin directly in `.vuepress/config.ts` under the `next` entrypoint and specify the required options (see [options](#options)). - TypeDoc will be bootstraped with the Vuepress `dev` and `build` [cli commands](https://v2.vuepress.vuejs.org/reference/cli.html). #### `.vuepress/config.ts` ```ts import { defaultTheme } from 'vuepress'; import { typedocPlugin } from 'vuepress-plugin-typedoc/next'; module.exports = { theme: defaultTheme({}), plugins: [ typedocPlugin({ // plugin options 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](https://typedoc.org/guides/options/) to the config. At a minimum the `entryPoints` and `tsconfig` options will need to be set. ```js entryPoints: ['../src/index.ts'], tsconfig: '../tsconfig.json' ``` Additional TypeDoc plugins will need to be explicitly set: ```js 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. | Name | Default | Description | | :-------------------------- | :------ | :--------------------------------------------------------------------------- | | `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 ```js { // TypeDoc options entryPoints: ['../src/index.ts'], tsconfig: '../tsconfig.json', cleanOutputDir: true // Plugin options out: 'api', sidebar: { fullNames: true, parentCategory: 'API', } } ``` ## License [MIT](https://github.com/tgreyuk/typedoc-plugin-markdown/blob/master/packages/vuepress-plugin-typedoc/LICENSE)