0.0.2 • Published 1 year ago

@sileigiser/vuepress-plugin-typedoc v0.0.2

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

vuepress-plugin-typedoc

A VuePress plugin to build API documentation with typedoc.

npm CI

What it does?

  • 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',

    // plugin options
    {
      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({
      // 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 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.

NameDefaultDescription
out"api"Output directory relative to docs directory.
hideInPageTOCfalseDo not render in-page table of contents items.
sidebar.autoConfigurationtrueSet to false to disable auto sidebar configuration.
sidebar.fullNamesfalseDisplay 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

{
  // TypeDoc options
  entryPoints: ['../src/index.ts'],
  tsconfig: '../tsconfig.json',
  cleanOutputDir: true

  // Plugin options
  out: 'api',
  sidebar: {
    fullNames: true,
    parentCategory: 'API',
  }
}

License

MIT