Skip to content

Releases: TypeStrong/typedoc

v0.26.0

22 Jun 00:23
Compare
Choose a tag to compare

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 <link rel="canonical"> 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 <meta> 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 <head> 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 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!

Unreleased

v0.25.13

07 Apr 21:59
Compare
Choose a tag to compare

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 <footer> tag, added footer.begin and footer.end
    render hooks for use by custom plugins, #2532.

Bug Fixes

  • Fixed conversion of NoInfer missing type parameter reference, #2539.
  • Linking to a member on a page no longer incorrectly claims that
    "This member is normally hidden due to your filter settings" for every member.

Thanks!

v0.25.12

10 Mar 17:48
Compare
Choose a tag to compare

Features

  • Added support for TypeScript 5.4, #2517.

Bug Fixes

  • Updated page font to work around issues with Mac rendering, #2518.

Thanks!

v0.25.11

06 Mar 03:32
Compare
Choose a tag to compare

Bug Fixes

  • Fixed an issue introduced with 0.25.10 which causes the page index to initially render empty, #2514.
  • "On This Page" section is now smarter when handling page headings which do not follow the normal h1>h2>h3 process, #2515.

v0.25.10

03 Mar 21:52
Compare
Choose a tag to compare

Bug Fixes

  • Constructed references to enum types will be properly linked with @interface, #2508.
  • Comments on property-methods will no longer be duplicated in generated documentation, #2509.
  • Reduced rendered docs size by writing icons to a referenced SVG asset, #2505.
    For TypeDoc's docs, this reduced the rendered documentation size by ~30%.
  • The HTML docs now attempt to reduce repaints caused by dynamically loading the navigation, #2491.
  • When navigating to a link that contains an anchor, the page will now be properly highlighted in the page navigation.

v0.25.9

26 Feb 04:36
Compare
Choose a tag to compare

Features

  • Literal numeric unions will now be sorted during conversion, #2502.

Bug Fixes

  • Module readmes will now be included in JSON output, #2500.
  • Fixed crash when --excludeNotDocumented was used and the project contained a reference to a removed signature, #2496.
  • Fixed crash when converting an infinitely recursive type via a new --maxTypeConversionDepth option, #2507.
  • Type links in "Parameters" and "Type Parameters" sections of the page will now be correctly colored.

Thanks!

v0.25.8

09 Feb 22:47
Compare
Choose a tag to compare

Features

  • Added a new --sitemapBaseUrl option. When specified, TypeDoc will generate a sitemap.xml in your output folder that describes the site, #2480.
  • Added support for the @class tag. When added to a comment on a variable or function, TypeDoc will convert the member as a class, #2479.
    Note: This should only be used on symbols which actually represent a class, but are not declared as a class for some reason.
  • Added support for @groupDescription and @categoryDescription to provide a description of groups and categories, #2494.
  • API: Exposed Context.getNodeComment for plugin use, #2498.

Bug Fixes

  • Fixed an issue where a namespace would not be created for merged function-namespaces which are declared as variables, #2478.
  • A class which implements itself will no longer cause a crash when rendering HTML, #2495.
  • Variable functions which have construct signatures will no longer be converted as functions, ignoring the construct signatures.
  • The class hierarchy page will now include classes whose base class is not included in the documentation, #2486.
  • Fixed an issue where, if the index section was collapsed when loading the page, all content within it would be hidden until expanded, and a member visibility checkbox was changed.
  • API: Context.programs will no longer contain duplicates, #2498.

v0.25.7

08 Jan 04:19
Compare
Choose a tag to compare

Bug Fixes

  • Fixed an issue where a namespace would not be created for merged function-namespaces only containing types, #2476.
  • Fixed an infinite loop when converting a union type which directly contained another union type which refers to itself, #2469.

v0.25.6

01 Jan 16:31
Compare
Choose a tag to compare

Bug Fixes

  • Fixed infinite loop caused by a fix for some complicated union/intersection types, #2468.
  • Improved infinite loop detection in type converter to reduce false positives.

v0.25.5

01 Jan 02:37
Compare
Choose a tag to compare

Features

  • Added a new hierarchy.html page to HTML output which displays the full inheritance hierarchy for classes included in the documentation, #182.
  • Added a --navigation.includeFolders (default: true) option to create nested navigation for projects which include many entry points, #2388.
  • Type parameters on functions/classes can will now link to the "Type Parameters" section, #2322.
    Type parameters have also been changed to have a distinct color from type aliases when rendering, which can be changed with custom CSS.
  • TypeDoc now provides warnings if a signature comment is directly specified on a signature and contains @param tags which do not apply, #2368.
  • Extended reflection preview view for interfaces to include type parameters, #2455.
  • Added special cases for converting methods which are documented as returning this or accepting this as a parameter, #2458.
    Note: This will only happen if a method is declared as method(): this, it will not happen if the method implicitly returns this
    as the compiler strips that information when creating types for a class instance.
  • Improved handling of functions with properties. Previous TypeDoc versions would always create a separate
    namespace for properties, now, TypeDoc will create a separate namespace if the function is declaration merged
    with a namespace. If the properties are added via Object.assign or via property assignment on the function
    TypeDoc will now instead add the properties to the function's page, #2461.

Bug Fixes

  • If both an interface and a variable share a name/symbol, TypeDoc will no longer link to the variable when referenced in a type position, #2106.
  • notDocumented validation will no longer require documentation for data within parameters that cannot be documented via @param, #2291.
  • "defined in" locations for signatures will now always be contained within the function declaration's location. This prevents defined in sometimes pointing to node_modules, #2307.
  • Type parameters will now be resolved for arrow-methods on classes like regular class methods, #2320.
  • TypeDoc now inherits typedocOptions fields from extended tsconfig files, #2334.
  • Methods which return function types no longer have duplicated comments, #2336.
  • Comments on function-like type aliases will now show up under the type alias, rather than nested within the type declaration, #2372.
  • Improved detection of default values for parameters with destructured values, #2430.
  • Fix crash when converting some complicated union/intersection types, #2451.
  • Navigation triangle markers should no longer display on a separate line with some font settings, #2457.
  • @group and @category organization is now applied later to allow inherited comments to create groups/categories, #2459.
  • Conversion order should no longer affect link resolution for classes with properties whose type does not rely on this, #2466.
  • Keyword syntax highlighting introduced in 0.25.4 was not always applied to keywords.
  • Module reflections now have a custom M icon rather than sharing with the namespace icon.
    Note: The default CSS still colors both modules and namespaces the same, as it is generally uncommon to have both in a generated site.
  • If all members in a group are hidden from the page, the group will be hidden in the page index on page load.