npm / typedoc-plugin-markdown
typedoc-plugin-markdown
What changed in typedoc-plugin-markdown 4, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-18.
3 breaking1 new APIs and options5 behavior and defaults1 tooling22 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli inittypedoc-plugin-markdown 432 changes
Breaking changes 3
Each parent under Extends is rendered as its own item instead of being joined with a dot.
The page and content begin/end hooks now fire on readme and document pages, allowing injected content such as front matter to appear there.
Symbol links without a declaration reference now warn and render as plain text instead of resolving to the nearest link.
New APIs and options 1
The new "none" option completely drops the parameter list/table and its heading.
Behavior and default changes 5
Each document group lists only its own documents.
Object members of an intersection appear under one Type Declaration heading after the type parameters.
Named tuple members render with their names and optional markers.
Type parameters, including method type parameters, receive anchors so links resolve; anchors follow parametersFormat and table-format anchors use a type-parameter- prefix.
When expandParameters is set, type parameters are expanded in signatures.
Tooling 1
Methods inside object types render their call signatures, every overload, and comments across expanded objects and tables and lists; nested methods retain their path prefix.
Fixes and other changes 22
anchorPrefix is applied to links pointing to another page, only once with the kind-dir and structure-dir routers.
Function, intersection, conditional, and type operator types are parenthesized when used as array elements or optional tuple elements to preserve the intended type.
Deprecated nested members are struck through in properties and type declaration tables, matching list format.
Returns sections render signature return types that are arrays or intersections of documented object types or @expand types instead of appearing empty.
Properties tables show an elided property default as ... instead of undefined.
entryModule matches modules only; entry-module discovery works with project documents, and readme output is written once with core routers and mergeReadme.
Parameters and return types referencing an @expand type render as the type instead of listing union members separately.
Generated file names omit #, ? and backslashes while retaining names made only of underscores, so document and underscore-function pages resolve to valid paths.
A class appears under every hierarchy root it extends or implements instead of only the first.
When lang is not English, constructor links point to their localized heading.
Pages remain inside the output directory when module or document names contain parent directory segments.
Tables mark parameters with default values as optional and use each object parameter member's own optional flag; list format also shows union-typed defaults and types for object parameters with no listable members.
Property output shows every modifier rather than only the first one found.
Relative media links are encoded so linked files with spaces in their names resolve.
Pipes are escaped in table cells, including code spans, so they do not split rows into extra columns while rendered text remains a plain pipe.
Literal values remain verbatim in code blocks, and backslashes in text outside code are escaped so displayed text matches the source.
The @example heading is translated in German, French, and Korean.
Broken links on Windows when using excludeScopesInPaths are fixed.
Plugin translations are loaded for the merge entry point strategy.
Truncated option descriptions in the published JSON schema and type declarations are fixed.
Prettier config is resolved against the file being written and .editorconfig is read, honoring path-specific settings.
Signature parameters are fixed.