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 renders TypeScript API documentation as Markdown.
![Build Status](https://github.com/tgreyuk/typedoc-plugin-markdown/actions/workflows/ci.yml/badge.svg?branch=master)
What does it do?
By default, TypeDoc will render API documentation as a webpage, e.g. HTML files.
The plugin replaces the default HTML theme with a built-in Markdown theme and exposes some additional options. This is useful if documentation is required to be included in project README files, Wikis and static site generators.
Installation
Please note this pre-release version may contain breaking changes within the same semantic version.
TypeDoc and Prettier are both required peer dependencies.
npm install typedoc-plugin-markdown@next --save-dev
Usage
typedoc --plugin typedoc-plugin-markdown
Options
The following options can be used in addition to relevant TypeDoc options
(please note that TypeDoc options specific to the HTML theme will be ignored).
File output and content organization options
--outputFileStrategy
Determines how output files are generated. Allowed values modules
(all symbols hoisted to a single modules file) or members
(each symbol exported to a seperate file as per HTML theme). Default to members
.--includeFileNumberPrefixes
Prefixes generated files and folders with number prefixes. This is useful for implementations that support auto sidebar generation. Defaults to false
.--flattenOutputFiles
Flatten output files without folders. Defaults to false
.--entryFileName
The file name of the entry page (either project readme or API index if readme=none). README.md
is recognised when browsing folders on repos and Wikis, while using index.md
. Defaults to README.md
.--skipIndexPage
Skips generation of a seperate API index page. Note the index page can be inserted into the readme page using the $TYPEDOC_INDEX
placeholder key. Ignored if readme=none. Defaults to false
.--indexPageTitle
The title of API index page. Defaults to the project name.--excludeGroups
By default members are grouped by kind (eg Classes, Functions etc). This option excludes such groupings so all members are rendered and sorted at the same level. Defaults to false
.
Please see File output and content organization options for further documentation.
UI options
--hidePageHeader
Do not print the page header. Defaults to false
.--hideBreadcrumbs
Do not print breadcrumbs. Defaults to false
.--hideInPageTOC
Do not print in-page index items. Defaults to false
.--hidePageTitle
Do not print the page title. Defaults to false
.--hideKindTag
Do not print the kind tag identifiers for symbols. Defaults to false
.--hideHierarchy
Do not print reflection hierarchy. Defaults to false
.--indentifiersAsCodeBlocks
Format signature and declaration identifiers in code blocks. Note if true
references will not be linked. Defaults to false
.--propertiesFormat
Specify the render style of properties groups for interfaces, classes and type literals. Expected values [list
, table
]. Defaults to list
.--enumMembersFormat
Specify the render style of Enum members. Expected values [list
, table
]. Defaults to list
.--typeDeclarationFormat
Specify the render style for type declaration members. Expected values [list
, table
]. Defaults to list
.
Utility options
--baseUrl
Specifies the base url for internal link. If omitted all urls will be relative. Defaults to .
--anchorFormat
The anchor style to use when linking to internal symbols. Expected values [lowercase
, slug
, none
]. Defaults to lowercase
.--anchorPattern
The anchor pattern to use when linking to internal symbols. e.g customprefix-{{anchor}}.--namedAnchors
Use HTML named anchor tags for implementations that do not assign header ids. Defaults to false
.
Frontmatter
If frontmatter is required for adding further metadata please use typedoc-plugin-frontmatter.
Output formatting (Prettier)
Generated Markdown is now parsed with Prettier which is backed by the remark-parse package. Parsing documents with Prettier has several benefits:
- Produces a consistent format.
- Removes unnecessary escape characters.
- Formats code blocks inside comment fenced blocks.
Any prettier configuration files discovered will be passed as options to the parser.
Further Documentation
Demos
TODO
Real life examples
TODO
License
MIT