### CHANGELOG
---
title: Changelog
---
## Unreleased
### Bug Fixes
- Anchor links in the mobile hamburger menu now correctly scroll to their target, #3049.
## v0.28.20 (2026-07-05)
### Features
- Group/category section headings (`
`) in the default theme now include an `id` attribute so they can be linked to via fragment identifiers (e.g. `modules.html#classes`), #3029.
- Added a `@reexport` modifier tag to have TypeDoc convert variable/type references as a re-export instead of a new symbol, #3096.
- API: Introduced `generateOutputsBegin` and `generateOutputsEnd` events on `Application` for plugin use.
### Bug Fixes
- When `--emit none` is used, TypeDoc will now report warnings about missing relative paths previously reported when rendering, #3078.
- Improved performance via asynchronously performing git and file write operations, more performant JSX rendering, and source code bundling, #3103.
- A `@hidden` tag on a constructor parameter-property will now only hide the property, not both the property and the parameter, #3111.
- Custom `@group` and `@category` titles with the same sort weight are now ordered consistently with the `alphabetical` reflection sort, #3120.
### Thanks!
- @greymoth-jp
- @jonathanhefner
- @kcastellino
- @Metbcy
- @StoneCypher
- @wotan-allfather
## v0.28.19 (2026-04-12)
### Features
- Added French translations for the TypeDoc interface and help descriptions.
- Added support for `triple-slash` comment style, which requires exactly three slashes in the comment, #3089.
### Bug Fixes
- Corrected handling of icon caching for custom themes which use SVGs with a larger view box than TypeDoc's default theme.
- Fixed short summary comment handling on module pages when the project source files use Windows line endings, #3093.
### Thanks!
- @avivkeller
- @hyosua
- @marijnh
- @Pistonight
## v0.28.18 (2026-03-23)
### Features
- Support TypeScript 6.0, #3084.
## v0.28.17 (2026-02-13)
### Bug Fixes
- Improved handling of comments for type aliases which have been declaration merged with functions, #3064.
- Fixed anchor link generation to members named `$`, #3065.
- Corrected typing of the `plugin` option to permit functions, #3066.
- Warnings about unused `@param` tags will now be properly suppressed when they come from declaration files and
the suppressCommentWarningsInDeclarationFiles option is enabled, #3070.
- Fixed conversion of types referencing type parameters on functions, #3071.
### Thanks!
- @pjeby
## v0.28.16 (2026-01-12)
### Bug Fixes
- Fixed an issue causing TypeDoc to fail to generate documentation when implementing interfaces, #3052.
- Fixed an issue preventing automatic entry point discovery on Windows, #3057.
- Improved vertical positioning of text icons, #3056.
- TypeDoc no longer includes source location information for type literal reflections. This could sometimes
cause TypeDoc to infer the wrong path when resolving base paths for display.
- Adjusted markdown rendering to allow `markdownItLoader` to override more rendering #3055.
### Features
- Added support for regions for `@include` in `.tsx`, `.cjs`, and `.mjs` file references #3048.
- Comments for TS-in-JS `@typedef` tags may now specify modifier tags with the inline tag syntax `{@mod}`.
This makes it possible to add modifier tags to these members, which previously was not possible as
TypeScript's parsing stops for these members at the next non-braced tag, #2916 and #3050.
- A `typedoc-config.schema.json` is now included in the root of the package with a JSON schema for TypeDoc's
configuration file. The schema for the latest version is also published at https://typedoc.org/schema.json
and will automatically be picked up when writing typedoc.json files if you are using VSCode, #3054.
### Thanks!
- @a10nik
- @kozi
- @Lakuna
## v0.28.15 (2025-11-29)
### Features
- The `gitRevision` option now accepts the special value `{branch}`, which indicates source links should use
the current git branch for links, #3041.
- Introduced `validation.invalidPath` for suppressing warnings caused by referencing relative paths which
do not exist when building the documentation, #3033.
- API: Introduced `Logger.validationWarning` for validation which occurs during conversion rather than
during TypeDoc's normal validation step, #3033.
## v0.28.14 (2025-10-11)
### Features
- Introduced the `preservedTypeAnnotationTags` option to specify tags whose type annotations should
be copied to the output documentation, #3020.
API: Introduced `typeAnnotation` on `CommentTag`
- Added `excludePrivateClassFields` option to hide `#private` members while allowing `private` members, #3017.
- Added support for TypeScript's `@this` tag for JS files which describe `this` parameters, #3026.
- API: Re-introduced `relevanceBoost` on `DeclarationReflection` for plugin use, #3036.
### Bug Fixes
- Fixed conversion of auto-accessor types on properties with the `accessor` keyword, #3019.
- Improved handling of HTML tags within headers for anchor generation, #3023.
- Improved support for detecting destructured parameters and renaming them to the name used in the doc comment, #3026.
- Constructor type parameters will now inherit their class's type parameter descriptions if not otherwise specified, #3031.
- Fixed compatibility with `@microsoft/tsdoc-config` version 0.18.0, #3035.
- Custom theme icons will now be used in the "On This Page" sidebar, #3039.
### Thanks!
- @iclanton
- @jonchardy
## v0.28.13 (2025-09-14)
### Features
- The `basePath` option now also affects relative link resolution, TypeDoc will also check for
paths relative to the provided base path. If you instead want TypeDoc to only change the rendered
base path for sources, use the `displayBasePath` option, #3009.
### Bug Fixes
- Fixed bug introduced in 0.28.8 where TypeDoc could not render docs with some mixin classes, #3007.
- `@inheritDoc` will now correctly overwrite `@remarks` and `@returns` blocks on the target comment, #3012.
- The `externalSymbolLinkMappings` option now works properly on links pointing to inherited/overwritten signatures, #3014.
## v0.28.12 (2025-09-01)
### Bug Fixes
- Variables marked with `@enum` now work for symbols imported from another module, #3003.
- Improved magic introduced with #2999 to work with imported symbols, #3003.
- Fixed relative link resolution to file names containing percent encoded URLs, #3006.
- Linking to the project's README file with a relative link will now behave as expected, #3006.
- Reduced unnecessary HTML element rendering in default theme.
API: `Reflection.hasComment` and `Comment.hasVisibleComponent` now accepts an optional `notRenderedTags` parameter.
## v0.28.11 (2025-08-25)
### Features
- Object properties declared with shorthand property assignment will now use the variable's comment
if they do not have their own comment, #2999.
### Bug Fixes
- Fixed link resolution not working correctly in first comment on the file in some cases, #2994.
- Optional methods are now rendered with a trailing `?` in the reflection preview and signature, #2995.
- The `compilerOptions` option now functions properly with non-boolean options, #3000.
- Configuration errors within the `compilerOptions` option are now handled gracefully, #3000.
- Fixed improper casing of "Type Declaration" header, #3002.
## v0.28.10 (2025-08-10)
### Bug Fixes
- Fixed inconsistent anchors on module pages for re-exports, #2990.
- Markdown references which appear to be footnotes will no longer be checked for links, #2991.
## v0.28.9 (2025-08-01)
### Features
- Add support for TypeScript 5.9, #2989.
### Bug Fixes
- Fixed bug introduced in 0.28.8 where TypeDoc could not render docs when members inherited from a complex type alias, #2982.
- Fixed automatic discovery of entry points when not running in packages mode, #2988.
- Fixed discovery of package.json file when running with entry points containing a glob, #2985.
## v0.28.8 (2025-07-28)
### Features
- If using JS config files, the `plugin` function can now be given plugin functions to load.
- Permit `-` within tag names to support `typescript-json-schema`'s `@TJS-type` tag, #2972.
- Exposed `Context.createSymbolId` for use by plugins.
### Bug Fixes
- Relative links in `` will now be discovered by TypeDoc, #2975.
- Relative links in `` and `` elements will now be discovered by TypeDoc, #2975.
- Improved inherited from/overwrites link discovery to point to parent properties in more cases, #2978
### Thanks!
- @jonathanhefner
- @laymonage
## v0.28.7 (2025-06-30)
### Features
- Introduced the `@sortStrategy` tag to override the `sort` option on a specific reflection, #2965.
### Bug Fixes
- Classes and functions exported with `export { type X }` are no longer missing comments, #2970.
- Setting `locale` to an unknown value will now cause TypeDoc to operate in English instead of a debug locale.
- Array options will now report an error if set to a non-array/non-string value.
## v0.28.6 (2025-06-27)
### Features
- TypeDoc now supports resolving relative paths in links to the package directory as belonging to the project, #2961.
- Declarations without comments will now check for comments on their export specifier, #2964.
### Bug Fixes
- Attempting to highlight a supported language which is not enabled is now a warning, not an error, #2956.
- Improved compatibility with CommonMark's link parsing, #2959.
- Classes, variables, and functions exported with `export { type X }` are now detected and converted as interfaces/type aliases, #2962.
- Improved warning messaging for links to symbols which were resolved, but the symbols were not included in the documentation, #2967.
- Fixed an issue preventing nested documents from being deserialized from TypeDoc's JSON output or used in packages mode, #2969.
### Thanks!
- @yGuy
## v0.28.5 (2025-05-26)
### Bug Fixes
- References to type aliases defined as mapped types will now correctly create a reference to the type alias, #2954.
- `ignoredHighlightLanguages` can now be used to prevent warnings for codeblocks containing languages
which are supported by Shiki but are not loaded, #2956.
## v0.28.4 (2025-05-04)
### Features
- The navigation in the default theme will now attempt to break long names onto multiple lines, #2940.
- Added German (de) localization, #2941.
### Bug Fixes
- TypeDoc's default theme now uses the same chevron for all collapsible elements, #2924
The `chevronSmall` helper is now deprecated and will be removed with v0.29.0.
- Classes/interfaces marked with `@hidden` will no longer appear in the
"Hierarchy" section of the docs.
- TypeDoc now handles wildcard JSDoc types, #2949.
### Thanks!
- @blutorange
- @bkeepers
## v0.28.3 (2025-04-20)
### Bug Fixes
- `@inline` now functions when referencing tuple types, #2932.
- `@link` links to the current page are now rendered, #2934.
- `@includeCode` now supports regions in TypeScript files with `.mts` and `.cts` file extensions, #2935.
- Aliased symbols (re-exports) are now resolved before checking if they are excluded/external, #2937.
- Improved error reporting when paths including Windows separators are provided as globs, #2938.
## v0.28.2 (2025-04-07)
### Features
- `@group none` and `@category none` will now render their children without a section
heading in the default theme, #2922.
- Added `@disableGroups` tag to completely disable the grouping mechanism for a
given reflection, #2922.
### Bug Fixes
- Variables using `@class` now correctly handle `@category`, #2914.
- Variables using `@class` now include constructor parameters, #2914.
- Variables using `@class` with a generic first constructor function now adopt
that function's type parameters as the class type parameters, #2914.
- When printing entry point globs which fail to match any paths, TypeDoc will no longer normalize the glob, #2918.
- Inlining types can now handle more type variants, #2920.
- Fixed behavior of `externalSymbolLinkMappings` option when URL is set to `#`, #2921.
- Fixed broken links within module pages when structure-dir router was used, #2928.
- Type parameters on JS classes defined with `@typedef` now correctly handle the constraint, #2929.
- API: `toString` on types containing index signatures now behave correctly, #2917.
- Added `@inlineType` to the list of tags excluded by default.
## v0.28.1 (2025-03-20)
### Features
- The `TypeDocOptions` interface now marks options as optional so it no longer has to be wrapped in `Partial`
for use in config files, #2901.
- API: Expose control methods for deferred conversion for plugin use (typedoc-plugin-missing-exports)
- API: Expose method to disable TypeDoc usage of `localStorage` without clearing it, #2908.
### Bug Fixes
- `--watch` can now infer entry points from `package.json` as supported in non-watch mode, #2899.
- `@include` with regions now works on files with CRLF line endings, #2902.
- Generated page names now correctly handles UTF-8 characters requiring more than 16 bits #2905.
- Fixed a crash when converting `module.exports = []`, #2909.
- Fixed URL generation which introduced a superfluous `./` in relative links, #2910.
### Thanks!
- @jsmith2-coveo
- @romainmnr
## v0.28.0 (2025-03-15)
### Breaking Changes
- TypeDoc now expects all input globs paths to be specified with `/` path separators, #2825.
- TypeDoc's `--entryPointStrategy merge` mode now requires JSON from at least version 0.28.0.
- Removed `jp` translations from `lang`, to migrate switch to `ja`.
- File name references in `intentionallyNotExported` now use a package name/package relative path instead of an absolute path for matching.
- The `source-order` sort ordering now considers package names / package relative paths instead of using the absolute paths to a file.
- TypeDoc will only check for a project README file next to the discovered `package.json` file if `--readme` is not set
this change improves handling of monorepo setups where some packages have readme files and others do not, #2875.
- Function-like variable exports will now only be automatically converted as function types if
they are initialized with a function expression. TypeDoc can be instructed to convert them as functions
with the `@function` tag, #2881.
- Object literal type alias types will now be converted in a way which causes them to be rendered more similarly
to how interfaces are rendered, #2817.
### API Breaking Changes
- `ProjectReflection.getReflectionFromSymbol` and `ProjectReflection.getSymbolFromReflection` have been moved to `Context`
- `Path` and `PathArray` parameter types now always contain normalized paths.
- Introduced a `Router` which is used for URL creation. `Reflection.url`,
`Reflection.anchor`, and `Reflection.hasOwnDocument` have been removed.
- `Deserializer.reviveProject(s)` no longer accepts an option to add project documents.
- `Deserializer.reviveProjects` now requires an `alwaysCreateEntryPointModule` option.
- `Comment.serializeDisplayParts` no longer requires a serializer argument.
- `ReflectionSymbolId.fileName` is now optional, TypeDoc now stores a combination of a package name and package relative path instead.
The `fileName` property will be present when initially created, but is not serialized.
- Removed `DeclarationReflection.relevanceBoost` attribute which was added for plugins, but never used.
- `i18n` proxy is no longer passed to many functions, instead, reference `i18n` exported from the module directly.
- `ReflectionKind.singularString` and `ReflectionKind.pluralString` now returns translated strings.
The methods on `Internationalization` to do this previously have been removed.
- The HTML output structure for the search box has changed to support the new modal.
- `DefaultThemeRenderContext`'s `typeDeclaration` and `typeDetailsIfUseful`
methods now require both a reflection and a type in order to support
`@expandType`
### Features
- Add support for TypeScript 5.8.x
- The search modal in the HTML output has been rewritten to provide better mobile support
- Added a `--router` option which can be used to modify TypeDoc's output folder
structure. This can be extended with plugins, #2111.
- Introduced the `@primaryExport` modifier tag to provide more fine grained
control over export conversion order, #2856
- Introduced `packagesRequiringDocumentation` option for `validation.notDocumented`, TypeDoc will expect comments to be present for symbols in the specified packages.
- TypeDoc now exports a `typedoc/browser` entrypoint for parsing and using serialized JSON files, #2528.
- Type `packageOptions` as `Partial`, #2878.
- TypeDoc will now warn if an option which should only be set at the root level is set in `packageOptions`, #2878.
- Introduced `@function` tag to force TypeDoc to convert variable declarations with a type annotation as functions, #2881.
- Exposed a `TypeDoc` global object in the HTML theme which can be used to prevent TypeDoc from using `localStorage`, #2872.
- Introduced `@preventInline` and `@inlineType` tags for further control extending the `@inline` tag, #2862.
- Introduced `@preventExpand` and `@expandType` tags for further control extending the `@expand` tag, #2862.
- API: Introduced `DefaultThemeRenderContext.reflectionIcon` for more granular control over displayed reflection icons.
### Bug Fixes
- TypeDoc will now only create references for symbols re-exported from modules.
- Variable-functions will now prefer placing the comment on the signature if there is only one signature present, #2824.
- User filter settings will no longer sometimes cause the search to have fewer visible results than expected.
- Fixed handling of expando functions which were also merged with a namespace, #2876.
- Fixed rendering of function types within arrays and union types, #2892.
- Fixed an issue where if the theme JS didn't load, the page wouldn't be shown, #2894.
### Thanks!
- @crimx
- @jsmith2-coveo
- @phoneticallySAARTHaK
- @XeroAlpha
## v0.27.9 (2025-02-25)
This will be the last v0.27.x release, see #2868 for discussion on the 0.28 beta.
### Features
- Added support for TypeScript 5.8
## v0.27.8 (2025-02-21)
### Features
- The `visibilityFilter` option now supports individual signatures, #2846.
- The `favicon` option may now be given a link starting with `https?://` instead of a path, #2851.
- TypeDoc now supports specifying `#` as the link in `externalSymbolLinkMappings` to indicate the type should not be linked to, #2853.
### Bug Fixes
- Fixed an issue where unrecognized languages would incorrectly be listed in the list of languages with translations, #2852.
- Unresolved external type references will no longer incorrectly linked to `undefined`, #2854.
### Thanks!
- @pjeby
- @XeroAlpha
## v0.27.7 (2025-02-09)
### Features
- `@includeCode` and `@inline` can now inject parts of files using region
names or line numbers, #2816.
- Introduced `ja` translation options, deprecated `jp` in favor of `ja`, #2843.
- Improved TypeDoc's `--watch` option to support watching files not caught by
TypeScript's watch mode, #2675.
- The `@inline` tag now works in more places for generic types.
- Visibility filters now consider individual signatures, #2846.
### Bug Fixes
- Fixed an issue where TypeDoc would incorrectly ignore type arguments in references, #2823.
- Improved narrator support for labeling icons, #2832.
- Fixed an issue with `@class` incorrectly handling mapped types, #2842.
- TypeDoc will now consider symbols to be external only if all of their declarations are external
so that declaration merged members with global symbols can be documented, #2844.
- Fixed an issue where TypeDoc would constantly rebuild, #2844.
- Fixed an issue where the dropdown arrow in the index group would not respect the state of the dropdown, #2845.
### Thanks!
- @pjeby
- @shawninder
- @tats-u
- @XeroAlpha
## v0.27.6 (2024-12-26)
### Features
- Added `ignoredHighlightLanguages` option to specify languages which will be
allowed in code blocks but not highlighted, #2819.
### Bug Fixes
- `@include` and `@includeCode` now work in the readme file, #2814.
- TypeDoc will now avoid making references to references, #2811.
- Fixed output specific option specification, #2818.
- Improved type reference conversion to avoid including defaulted type arguments, #2820.
- Fixed parsing of declaration references which include a module and a local reference, #2810.
- Improved link resolution logic to prioritize type alias properties with the
same symbol over type literal properties within function parameters.
## v0.27.5 (2024-12-14)
### Bug Fixes
- Possibly Breaking: TypeDoc will no longer render anchors within the page for
deeply nested properties. This only affects links to properties of
properties of types, which did not have a clickable link exposed so are
unlikely to have been linked to. Furthermore, these links were not always
created by TypeDoc, only being created if all parent properties contained
comments, #2808.
- TypeDoc will now warn if a property which does not have a URL within the
rendered document and the parent property/page will be linked to instead,
#2808. These warnings can be disabled with the `validation.rewrittenLink`
option.
- Fix restoration of groups/categories including documents, #2801.
- Fixed missed relative paths within markdown link references in documents.
- Improved handling of incomplete inline code blocks within markdown.
- Direct `https://` links under the `hostedBaseUrl` option's URL will no
longer be treated as external, #2809.
### Thanks!
- @SacDeNoeuds
## v0.27.4 (2024-12-09)
### Features
- API: Introduced new `Converter.EVENT_CREATE_PROJECT` event which fires when a project is created by the converter, #2800.
### Bug Fixes
- Switch from gzip to deflate for compressing assets to make output consistent across different operating systems, #2796.
- `@include` and `@includeCode` now work for comments on the entry point for projects with a single entry point, #2800.
- Cascaded modifier tags will no longer be copied into type literals, #2802.
- `@summary` now works to describe functions within modules, #2803.
- Corrected navigation showing module link as current when not on module page, #2805.
## v0.27.3 (2024-12-04)
### Features
- Added support for PNG favicons, #2790.
- Improved support for hosting TypeDoc with strict Content Security Policy rules, #2794.
### Bug Fixes
- Add special handling for import types with type errors discarded with ts-expect-error, #2792.
- Fixed low contrast in default colors for properties/accessors in light mode, #2795.
- The `highlightLanguages` option now permits Shiki aliases to be specified rather than just the language ID, #2798.
### Thanks!
- @mikalai-snap
- @mistic100
## v0.27.2 (2024-11-29)
### Bug Fixes
- Fix crash with TypeScript 5.5.x, #2789.
## v0.27.1 (2024-11-28)
### Bug Fixes
- Include classes which inherit from another package in class hierarchy in packages mode, #2467.
- Fixed handling of `@categoryDescription` and `@groupDescription` on module pages, #2787.
- Fixed automatic discovery of entry points in packages mode.
- Reverted accidental style change for hierarchy page introduced in 0.27.0
- The hierarchy Expand/Collapse link will now only appear if the hierarchies are different.
## v0.27.0 (2024-11-27)
### Breaking Changes
- Convert to ESM to enable easier use of ESM-only dependencies.
- Drop support for TypeScript <5.0, no longer supported by DefinitelyTyped
- Relaxed requirements for file names and generated url fragments. This may
result in a different file name structure, #2714.
- Anchors to document headings and reflections within a HTML generated pages
have changed. They can be partially restored to the previous format by
setting `--sluggerConfiguration.lowercase false`. This change was made to
more closely match the default behavior of GitHub's markdown rendering and
VSCode's autocomplete when creating a relative link to an external markdown
file.
- Removed the `hideParameterTypesInTitle` option, this was originally added as
a workaround for many signatures overflowing the available horizontal space
in rendered pages. TypeDoc now has logic to wrap types/signatures smartly,
so this option is no longer necessary.
- Changed the default `kindSortOrder` to put references last.
- Changed the default `sort` order to use `alphabetical-ignoring-documents`
instead of `alphabetical`.
- Changed default of `suppressCommentWarningsInDeclarationFiles` to `true`
- API: Constructor signatures now use the parent class name as their name
(e.g. `X`, not `new X`)
- API: `@group`, `@category`, `@groupDescription` and `@categoryDescription`
will no longer be removed from the reflections they are present on. They are
skipped during rendering with the `notRenderedTags` option.
### Features
- Add support for TypeScript 5.7
- TypeDoc will now discover entry points from `package.json` exports if they
are not provided manually, #1937.
- Relative links to markdown files may now include `#anchor` links to
reference a heading within them.
- Improved support for `@param` comments with nested object types, #2555.
- Improved support for `@param` comments which reference a type
alias/interface. Important properties on the referenced type can now be
highlighted with `@param options.foo`, which will result in the additional
note being included under the documentation for that parameter, #2147. Note:
This feature is limited to references. It is not supported on other types of
types.
- Added a new `outputs` option which is an array of outputs. This can be used
to render the documentation multiple times with different rendering options
or output types, #2597.
- Added support for rendering alerts (or callouts) in markdown.
- Add support for an `@expand` tag which can be placed on type aliases and
interfaces. When a type with `@expand` is referenced and TypeDoc has a place
to include additional details about the type, the properties of the type
will be included in the page where `@expand` is found. Note that use of this
tag can _significantly_ increase the size of your generated documentation if
it is applied to commonly used types as it will result in inlining the
comments for those types everywhere they are referenced, #2303.
- Add support for an `@inline` tag which can be placed on type aliases and
interfaces. When a type with `@inline` is referenced, TypeDoc will resolve
the referenced type and convert the type as if it was included directly
within the referencing type. Note that use of this tag can _significantly_
increase the size of your generated documentation if it is applied to
commonly used types as it will result in inlining the comments for those
types everywhere they are referenced, #2303.
- Introduced a new `@useDeclaredType` tag for type aliases which can sometimes
improve their documentation, #2654.
- Added a new `@mergeModuleWith` tag which can be used to tell TypeDoc to
place a module/namespace's children under a different module/namespace and
remove the real parent, #2281.
- Added new `@include` and `@includeCode` inline tags to include files within
comments/documents.
- Add `notRenderedTags` option. This option is similar to the `excludeTags`
option, but while `excludeTags` will result in the tag being completely
removed from the documentation, `notRenderedTags` only prevents it from
being included when rendering.
- Added `groupReferencesByType` option.
- Added `navigation.excludeReferences` option
- Added `useFirstParagraphOfCommentAsSummary` option to configure how TypeDoc
handles comments for module members without the `@summary` tag.
- Introduced `favicon` option to specify a `.ico` or `.svg` favicon to reference.
- Sections within the page and in the "On This Page" navigation are now tied
together and will expand/collapse together, #2335.
- API: Introduced a new `app.outputs` object for defining new output strategies.
- API: TypeDoc's CSS is now wrapped in `@layer typedoc`, #2782.
### Bug Fixes
- TypeDoc now properly flags `readonly` index signatures.
- TypeDoc will now use the first signature's comment for later signatures in
overloads if present, #2718.
- Fixed handling of `@enum` if the type was declared before the variable, #2719.
- Fixed empty top level modules page in packages mode, #2753.
- TypeDoc can now link to type alias properties, #2524.
- TypeDoc will now document the merged symbol type when considering globals
declared inside `declare global`, #2774
- TypeDoc now converts `declare module "foo"` as a module rather than a namespace, #2778.
- Import types in type aliases now use module member references if present, #2779.
- Fixed an issue where properties were not properly marked optional in some
cases. This primarily affected destructured parameters.
- Added `yaml` to the highlight languages supported by default.
- TypeDoc now recognizes `txt` as an alias of `text` to indicate a code block
should not be highlighted.
- Items which are hidden with `@ignore` or `@hidden` but still referenced by
other types will no longer produce warnings about not being exported.
- If a project only has one module within it, TypeDoc will now consider that
module when resolving `@link` tags.
- The arrows to indicate whether or not a section is open now work when
JavaScript is disabled.
- Group/category search boosts are now applied when writing the search index
rather than when converting. This prevents issues where boosts used by just
one package were incorrectly reported as unused when running with
entryPointStrategy set to packages.
### Thanks!
- @Huxpro
- @mrfigg
- @tgreyuk
- @XeroAlpha
## v0.26.11 (2024-11-01)
### Features
- If `hostedBaseUrl` is set to the root page on a website, TypeDoc will now include `WebSite` structured data, #2760.
### Bug Fixes
- Fix support for ESM config files with Node 23, #2752.
- Fix type errors when using `"module": "ESNext"` and importing TypeDoc, #2747.
- Inherited comments on overloaded methods now consider the overload position when inheriting a comment, #2755.
## v0.26.10 (2024-10-16)
### Bug Fixes
- Fixed missing space on page headers, #2748.
## v0.26.9 (2024-10-11)
### Features
- Added `headings` option to control optional headings, #2729.
- Updated Chinese translations, #2739.
- Added a folder icon to page navigation elements which are not links, #2741.
### Bug Fixes
- `externalSymbolLinkMappings` now uses the TypeScript reported link target if available, #2725.
- TypeDoc will no longer omit the modules page if a project contains only modules/documents, #2730.
- Fixed missing breadcrumbs on project page, #2728.
- TypeDoc will no longer render an empty readme page if no readme was found.
### Thanks!
- @lriggle-strib
- @mrfigg
- @XeroAlpha
## v0.26.8 (2024-10-04)
### Features
- Updated Chinese translations, #2706.
- Exported constants no longer render the type and default value if they are the same, #2717.
- The HTML output now wraps tag blocks with `
` tags and includes the tag name in a class name, #2723.
### Bug Fixes
- Correctly handle external link resolver link text when referencing an external symbol, #2700.
- Big integer literals are now supported as default values, #2721.
- Corrected handling of `@link` tags present in comments at the start of source files.
- The index will now display when a module only contains documents, #2722.
- `ReflectionSymbolId.pos` no longer references the position _before_ any doc comments for a symbol.
This could cause typedoc-plugin-dt-links to produce links which didn't go to the expected location in a file.
### Thanks!
- @Corso02
- @lriggle-strib
- @XeroAlpha
## v0.26.7 (2024-09-09)
### Features
- Support TypeScript 5.6, #2699.
- Added `customJs` option to include a script tag in generated HTML output, #2650.
- Added `markdownLinkExternal` option to treat `http[s]://` links in markdown documents and comments as external to be opened in a new tab, #2679.
- Added `navigation.excludeReferences` option to prevent re-exports from appearing in the left hand navigation, #2685.
- Added support for the `@abstract` tag, #2692.
### Bug Fixes
- Fixed an issue where links in packages mode would be resolved incorrectly, #2680.
- `@link` tags to symbols which are not included in the documentation will produce invalid link warnings again, #2681.
- Fixed handling of `@param` tags on comments attached to function callback parameters, #2683.
- The `alphabetical` and `alphabetical-ignoring-documents` sort options now use `localeCompare` to sort, #2684.
- Fixed incorrect placement of parameter default values in some signatures with a `this` parameter, #2698.
### Thanks!
- @Aryakoste
- @waynemwashuma
## v0.26.6 (2024-08-18)
### Features
- Use of the `@extends` block tag no longer produces warnings, #2659.
This tag should only be used in JavaScript projects to specify the type parameters used when extending a parent class. It will not be rendered.
- Added new `navigation.compactFolders` option to prevent TypeDoc from compacting folders, similar to the VSCode option. #2667.
### Bug Fixes
- The `suppressCommentWarningsInDeclarationFiles` option now correctly ignores warnings in `.d.cts` and `.d.mts` files, #2647.
- Restored re-exports in the page navigation menu, #2671.
- JSON serialized projects will no longer contain reflection IDs for other projects created in the same run. Gerrit0/typedoc-plugin-zod#6.
- In packages mode the reflection ID counter will no longer be reset when converting projects. This previously could result in links to files not working as expected.
## v0.26.5 (2024-07-21)
### Features
- TypeDoc now exposes array option defaults under `OptionDefaults`, #2640.
### Bug Fixes
- Constructor parameters which share a name with a property on a parent class will no longer inherit the comment on the parent class, #2636.
- Packages mode will now attempt to use the comment declared in the comment class for inherited members, #2622.
- TypeDoc no longer crashes when `@document` includes an empty file, #2638.
- API: Event listeners added later with the same priority will be called later, #2643.
### Thanks!
- @bladerunner2020
## v0.26.4 (2024-07-10)
### Bug Fixes
- The page navigation sidebar no longer incorrectly includes re-exports if the same member is exported with multiple names #2625.
- Page navigation now ensures the current page is visible when the page is first loaded, #2626.
- If a relative linked image is referenced multiple times, TypeDoc will no longer sometimes produce invalid links to the image #2627.
- `@link` tags will now be validated in referenced markdown documents, #2629.
- `@link` tags are now resolved in project documents, #2629.
- HTML/JSON output generated by TypeDoc now contains a trailing newline, #2632.
- TypeDoc now correctly handles markdown documents with CRLF line endings, #2628.
- `@hidden` is now properly applied when placed in a function implementation comment, #2634.
- Comments on re-exports are now rendered.
### Thanks!
- @bukowa
- @garrett-hopper
## v0.26.3 (2024-06-28)
### Features
- "On This Page" navigation now includes the page groups in collapsible sections, #2616.
### Bug Fixes
- `mailto:` links are no longer incorrectly recognized as relative paths, #2613.
- Added `@since` to the default list of recognized tags, #2614.
- Relative paths to directories will no longer cause the directory to be copied into the media directory, #2617.
## v0.26.2 (2024-06-24)
### Features
- Added a `--suppressCommentWarningsInDeclarationFiles` option to disable warnings from
parsing comments in declaration files, #2611.
- Improved comment discovery to more closely match TypeScript's discovery when getting comments
for members of interfaces/classes, #2084, #2545.
### Bug Fixes
- The `text` non-highlighted language no longer causes warnings when rendering, #2610.
- If a comment on a method is inherited from a parent class, and the child class does not
use an `@param` tag from the parent, TypeDoc will no longer warn about the `@param` tag.
## v0.26.1 (2024-06-22)
### Features
- Improved Korean translation coverage, #2602.
### Bug Fixes
- Added `@author` to the default list of recognized tags, #2603.
- Anchor links are no longer incorrectly checked for relative paths, #2604.
- Fixed an issue where line numbers reported in error messages could be incorrect, #2605.
- Fixed relative link detection for markdown links containing code in their label, #2606.
- Fixed an issue with packages mode where TypeDoc would use (much) more memory than required, #2607.
- TypeDoc will no longer crash when asked to render highlighted code for an unsupported language, #2609.
- Fixed an issue where relatively-linked files would not be copied to the output directory in packages mode.
- Fixed an issue where modifier tags were not applied to top level modules in packages mode.
- Fixed an issue where excluded tags were not removed from top level modules in packages mode.
- `.jsonc` configuration files are now properly read as JSONC, rather than being passed to `require`.
### Thanks!
- @KNU-K
## v0.26.0 (2024-06-22)
### Breaking Changes
- Drop support for Node 16.
- Moved from `marked` to `markdown-it` for parsing as marked has moved to an async model which supporting would significantly complicate TypeDoc's rendering code.
This means that any projects setting `markedOptions` needs to be updated to use `markdownItOptions`.
Unlike `marked@4`, `markdown-it` pushes lots of functionality to plugins. To use plugins, a JavaScript config file must be used with the `markdownItLoader` option.
- Updated Shiki from 0.14 to 1.x. This should mostly be a transparent update which adds another 23 supported languages and 13 supported themes.
As Shiki adds additional languages, the time it takes to load the highlighter increases linearly. To avoid rendering taking longer than necessary,
TypeDoc now only loads a few common languages. Additional languages can be loaded by setting the `--highlightLanguages` option.
- Changed default of `--excludePrivate` to `true`.
- Renamed `--sitemapBaseUrl` to `--hostedBaseUrl` to reflect that it can be used for more than just the sitemap.
- Removed deprecated `navigation.fullTree` option.
- Removed `--media` option, TypeDoc will now detect image links within your comments and markdown documents and automatically copy them to the site.
- Removed `--includes` option, use the `@document` tag instead.
- Removed `--stripYamlFrontmatter` option, TypeDoc will always do this now.
- Renamed the `--htmlLang` option to `--lang`.
- Removed the `--gaId` option for Google Analytics integration and corresponding `analytics` theme member, #2600.
- All function-likes may now have comments directly attached to them. This is a change from previous versions of TypeDoc where functions comments
were always moved down to the signature level. This mostly worked, but caused problems with type aliases, so was partially changed in 0.25.13.
This change was extended to apply not only to type aliases, but also other function-likes declared with variables and callable properties.
As a part of this change, comments on the implementation signature of overloaded functions will now be added to the function reflection, and will
not be inherited by signatures of that function, #2521.
- API: TypeDoc now uses a typed event emitter to provide improved type safety, this found a bug where `Converter.EVENT_CREATE_DECLARATION`
was emitted for `ProjectReflection` in some circumstances.
- API: `MapOptionDeclaration.mapError` has been removed.
- API: Deprecated `BindOption` decorator has been removed.
- API: `DeclarationReflection.indexSignature` has been renamed to `DeclarationReflection.indexSignatures`.
Note: This also affects JSON serialization. TypeDoc will support JSON output from 0.25 through at least 0.26.
- API: `JSONOutput.SignatureReflection.typeParameter` has been renamed to `typeParameters` to match the JS API.
- API: `DefaultThemeRenderContext.iconsCache` has been removed as it is no longer needed.
- API: `DefaultThemeRenderContext.hook` must now be passed `context` if required by the hook.
### Features
- Added support for TypeScript 5.5.
- Added new `--projectDocuments` option to specify additional Markdown documents to be included in the generated site #247, #1870, #2288, #2565.
- TypeDoc now has the architecture in place to support localization. No languages besides English
are currently shipped in the package, but it is now possible to add support for additional languages, #2475.
- Added support for a `packageOptions` object which specifies options that should be applied to each entry point when running with `--entryPointStrategy packages`, #2523.
- `--hostedBaseUrl` will now be used to generate a `` element in the project root page, #2550.
- Added support for documenting individual elements of a union type, #2585.
Note: This feature is only available on type aliases directly containing unions.
- TypeDoc will now log the number of errors/warnings errors encountered, if any, after a run, #2581.
- New option, `--customFooterHtml` to add custom HTML to the generated page footer, #2559.
- TypeDoc will now copy modifier tags to children if specified in the `--cascadedModifierTags` option, #2056.
- TypeDoc will now warn if mutually exclusive modifier tags are specified for a comment (e.g. both `@alpha` and `@beta`), #2056.
- Groups and categories can now be collapsed in the page body, #2330.
- Added support for JSDoc `@hideconstructor` tag.
This tag should only be used to work around TypeScript#58653, prefer the more general `@hidden`/`@ignore` tag to hide members normally, #2577.
- Added `--useHostedBaseUrlForAbsoluteLinks` option to use the `--hostedBaseUrl` option to produce absolute links to pages on a site, #940.
- Tag headers now generate permalinks in the default theme, #2308.
- TypeDoc now attempts to use the "most likely name" for a symbol if the symbol is not present in the documentation, #2574.
- Fixed an issue where the "On This Page" section would include markdown if the page contained headings which contained markdown.
- TypeDoc will now warn if a block tag is used which is not defined by the `--blockTags` option.
- Added three new sort strategies `documents-first`, `documents-last`, and `alphabetical-ignoring-documents` to order markdown documents.
- Added new `--alwaysCreateEntryPointModule` option. When set, TypeDoc will always create a `Module` for entry points, even if only one is provided.
If `--projectDocuments` is used to add documents, this option defaults to `true`, otherwise, defaults to `false`.
- Added new `--highlightLanguages` option to control what Shiki language packages are loaded.
- TypeDoc will now render union elements on new lines if there are more than 3 items in the union.
- TypeDoc will now only render the "Type Declaration" section if it will provide additional information not already presented in the page.
This results in significantly smaller documentation pages in many cases where that section would just repeat what has already been presented in the rendered type.
- Added `comment.beforeTags` and `comment.afterTags` hooks for plugin use.
Combined with `CommentTag.skipRendering` this can be used to provide custom tag handling at render time.
### Bug Fixes
- TypeDoc now supports objects with multiple index signatures, #2470.
- Header anchor links in rendered markdown are now more consistent with headers generated by TypeDoc, #2546.
- Types rendered in the `Returns` header are now properly colored, #2546.
- Links added with the `navigationLinks` option are now moved into the pull out navigation on mobile displays, #2548.
- `@license` and `@import` comments will be ignored at the top of files, #2552.
- Fixed issue in documentation validation where constructor signatures where improperly considered not documented, #2553.
- Keyboard focus is now visible on dropdowns and checkboxes in the default theme, #2556.
- The color theme label in the default theme now has an accessible name, #2557.
- Fixed issue where search results could not be navigated while Windows Narrator was on, #2563.
- `charset` is now correctly cased in `` tag generated by the default theme, #2568.
- Fixed very slow conversion on Windows where Msys git was used by typedoc to discover repository links, #2586.
- Validation will now be run in watch mode, #2584.
- Fixed an issue where custom themes which added dependencies in the `` element could result in broken icons, #2589.
- `@default` and `@defaultValue` blocks are now recognized as regular blocks if they include inline tags, #2601.
- Navigation folders sharing a name will no longer be saved with a shared key to `localStorage`.
- The `--hideParameterTypesInTitle` option no longer applies when rendering function types.
- Broken `@link` tags in readme files will now cause a warning when link validation is enabled.
- Fixed `externalSymbolLinkMappings` option's support for [meanings](https://typedoc.org/guides/declaration-references/#meaning) in declaration references.
- Buttons to copy code now have the `type=button` attribute set to avoid being treated as submit buttons.
- `--hostedBaseUrl` will now implicitly add a trailing slash to the generated URL.
### Thanks!
- @Aryakoste
- @bladerunner2020
- @Dinnerbone
- @HarelM
- @kraenhansen
- @Nil2000
- @steve02081504
- @tristanzander
## v0.25.13 (2024-04-07)
### Features
- Added `gitRevision:short` placeholder option to `--sourceLinkTemplate` option, #2529.
Links generated by TypeDoc will now default to using the non-short git revision.
- Moved "Generated by TypeDoc" footer into a `