What is typedoc-plugin-markdown?
The typedoc-plugin-markdown npm package is a plugin for TypeDoc that allows you to generate Markdown documentation from TypeScript projects. It extends TypeDoc's capabilities by providing support for various Markdown formats, making it easier to integrate with static site generators and other documentation tools.
What are typedoc-plugin-markdown's main functionalities?
Generate Markdown Documentation
This configuration file for TypeDoc uses the typedoc-plugin-markdown to generate Markdown documentation. The 'out' option specifies the output directory, and various 'exclude' options are used to filter out unnecessary parts of the documentation.
module.exports = {
plugins: ['typedoc-plugin-markdown'],
out: 'docs',
mode: 'file',
includeDeclarations: true,
excludeExternals: true,
excludePrivate: true,
excludeProtected: true,
excludeNotExported: true,
readme: 'none'
};
Support for Custom Themes
This configuration demonstrates how to use a custom theme with the typedoc-plugin-markdown. The 'theme' option is set to 'custom-theme', which allows you to customize the look and feel of the generated Markdown documentation.
module.exports = {
plugins: ['typedoc-plugin-markdown'],
out: 'docs',
theme: 'custom-theme',
includeDeclarations: true,
excludeExternals: true,
excludePrivate: true,
excludeProtected: true,
excludeNotExported: true,
readme: 'none'
};
Integration with Static Site Generators
This configuration shows how to set up the typedoc-plugin-markdown for integration with static site generators. The 'entryPoints' option specifies the entry points for the documentation, and 'entryPointStrategy' is set to 'expand' to include all relevant files.
module.exports = {
plugins: ['typedoc-plugin-markdown'],
out: 'docs',
mode: 'file',
includeDeclarations: true,
excludeExternals: true,
excludePrivate: true,
excludeProtected: true,
excludeNotExported: true,
readme: 'none',
entryPoints: ['src/index.ts'],
entryPointStrategy: 'expand'
};
Other packages similar to typedoc-plugin-markdown
typedoc
TypeDoc is a documentation generator for TypeScript projects. While it primarily generates HTML documentation, it can be extended with plugins like typedoc-plugin-markdown to support other formats. TypeDoc is the core tool that typedoc-plugin-markdown builds upon.
documentation
The documentation package is a documentation generator for JavaScript and TypeScript projects. It supports multiple output formats, including HTML and Markdown. Compared to typedoc-plugin-markdown, it offers a more general approach to documentation generation and is not specifically tailored for TypeScript.
jsdoc
JSDoc is a popular documentation generator for JavaScript projects. It can be used with TypeScript through type annotations and supports various output formats, including Markdown. While it is more commonly used for JavaScript, it can be adapted for TypeScript projects, making it a versatile alternative to typedoc-plugin-markdown.
typedoc-plugin-markdown
A plugin for TypeDoc that exposes a theme and additional arguments for rendering markdown.
Installation
npm install --save-dev typedoc typedoc-plugin-markdown
Usage
The plugin provides an additional theme named 'markdown' that can be referenced by name:
shell
$ node_modules/.bin/typedoc --theme markdown
npm script
"scripts": {
"docs": "typedoc --theme markdown"
}
Arguments
The plugin exposes the following arguments in addition to TypeDoc's defaults:
--mdEngine <github|bitbucket|gitbook>
The target markdown rendering engine:
Engine | Description |
---|
github (default) | Optimized for GitHub Flavored markdown. |
bitbucket | Renders markdown to support Bitbucket's internal anchor linking. |
gitbook | Generates additional SUMMARY.md file to enable a table of contents. |
--mdHideSources
Suppress source file linking from output.
--mdSourceRepo <path.to.repo>
(Ignored on GitHub repositories)
For projects hosted on GitHub TypeDoc resolves source files. This argument allows targeting of source files hosted on other environments.
For Bitbucket use: https://bitbucket.org/owner/repository_name
.
What does it look like?
The markdown theme aims to provide the same functionality as the default theme with a simple breadcrumb navigation. To get an idea of the output view some generic example output.
Acknowledgements
Thanks to kimamula's typedoc-markdown-theme for the inspiration behind this project.