NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #1174 most downloaded on pub.dev
A non-interactive HTML documentation generator for Dart source code.
Last release 1 months ago
10 Aug 2026
Ships fairly regularly
a new release about every 2 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
12 years old
211 releases · first in 2015
Fix several issues with new type hierarchy. (#2714, #2721)
BREAKING CHANGE: Enable the enhanced lookups by default. Some formerly invalid doc references will no longer be ignored and now generate warnings, and…
--no-enhanced-reference-lookup but this will
be removed soon so please file bugs if you need to use this.
(#2705)--format option so users can discover
the markdown support (#2703)One column per quarter.
BREAKING CHANGE: Custom templates using some obscure getters of modelType may no longer function (returnElement and others not used in standard templa…
Future detection, where an
asynchronous function without a declared return type had
its return type listed as Future, is no more. Those
functions now show a dynamic return type. (#2665)BREAKING CHANGE: Add support for generic metadata rendering in typedefs. (#2649, #2654). This changes how typedefs are rendered so that they all appea…
_callable templates
and have their own implementations.BREAKING CHANGE: hasDisplayedCategories replaced with hasCategoryNames.
lib/src/markdown_processor.dart. Most
of this work is disabled by default but does impact internal APIs.
(#2637, #2634, #2630, #2622)BREAKING CHANGE: Refactor of dartdoc features and annotations. Use hasFeatures in templates in place of checking featuresAsString as a boolean (#2600)…
hasFeatures in templates in place of checking featuresAsString as a
boolean (#2600), and linkedNameWithParameters for getting rendered
annotations (#2605).asCallable instead
of hasCallable in templates to handle casts correctly. (#2564)BREAKING CHANGE: Refactors to better support new type handling. With #2573 and changes building on it, linkedReturnType must be changed to either mode…
linkedReturnType must be changed
to either modelType or modelType.returnType in templates. (#2583, #2573)More implementation added for Mustachio (#2481, #2482, #2488, #2491, #2497,
Breaking change: Removed bootstrap CSS files.
= to document values for named parameters. (#2453, #2087)Breaking change: Refactor sidebar handling to improve performance. Sidebar templates are now required to exist in custom sets, though you do not have…
sed script example in referred PR. (#2438)FLUTTER_ROOT even where pub get
has already run. (#2440, #2407)Breaking change: Correct null dereference exception on unusual import URIs through change to PackageGraph.allLibraries. (#2429, #2426)
mustachio, a builder for mustache
templates. (#2417, #2421, #2427, #2430, #2434).Tag Null safety only where the code is actually null safe. (#2411, #2403)
Null safety only where the code is actually null safe. (#2411, #2403)Fix NPE in Accessor.computeDocumentationComment when encountering static fields in extension methods (#2402, #2404)
Accessor.computeDocumentationComment when encountering
static fields in extension methods (#2402, #2404)Breaking change Behavior of --exclude-packages is changed so that packages so excluded will never be treated as "remote". This version is now incompat…
--exclude-packages is changed so that
packages so excluded will never be treated as "remote". This version is now
incompatible with old workarounds for #1431 (and those workarounds are no
longer needed). Also removes PackageGraph.packageDocumentedFor.
(#2387, #2382, #1431)TemplateData.packageGraph. (#2375, #2373,
#2379)Breaking change: The DartdocOption constructor interface has changed so it uses an enum instead of individual isFile and isDir.
nodoc option in dartdoc_options.yaml to prevent all symbols
declared in a file from ever being documented, similar to using @nodoc
(#2369, #2368, #2266, #2355)DartdocOption's value to be a glob.
(#2365)
DartdocOption constructor interface has changed
so it uses an enum instead of individual isFile and isDir.MultiFutureTracker. (#2351)Breaking change: Move io_utils listDir to be a private method in PackageBuilder.
package_config. PhysicalPackageConfigProvider uses the real one;
MemoryPackageConfigProvider is used in tests.isSdkLibraryDocumented abstracts over SdkLibrary's
isDocumented, because it throws unimplemented for MockSdkLibrary.ResourceProviderExtensions.defaultSdkDir. Now this is a property
of PackageMetaProvider.io_utils listDir to be a private method in
PackageBuilder.substituteNameVersion.testing/test_package_small to be unit tests;
delete the package in testing/.Breaking change: Many classes have a new ResourceProvider resourceProvider field: DartdocFileWriter, SnapshotCache, DartToolDefinition, ToolConfigurat…
FLUTTER_ROOT is missing. (#2316)Deprecate the public method Canonicalization.scoreElementWithLibrary.
{@endtemplate}. (#2289)Canonicalization.scoreElementWithLibrary.ScoredCandidate.reasons and
ScoredCandidate.element, method ScoredCandidate.alterScore.Category.package, and Category.config, and the
public method Category.fileType.Category.linkedName and
Category.categoryLabel.Class.mixins and Class.supertype and method
Class.isInheritedFrom.Library.fromLibraryResult to be a factory constructor.Library.getDefinedElements,
Library.getLibraryName, and getter
Library.allOriginalModelElementNames.io_utils.dart:
libraryNameRegexp, partOfRegexp, newLinePartOfRegexpcategorization.dart:
categoryRegexpmodel_element.dart:
needsPrecacheRegExp, htmlInjectRegExp, macroRegExpsource_linker.dart:
uriTemplateRegexpAllow injected HTML in a macro which is output by a tool (#2274).
Allow documenting code with null safety (#2210, #2221).
Fix type exception in 2.9 dev versions of dart (#2214).
Container class, changing the names
of many getters for templates. Users with custom templates
may need to update their templates (#2206, #2208).flutter pub get when appropriate instead of dart
pub get (#2190).--link-to-remote is now the default.
--link-to-remote is now the default. (#2147)--show-progress is now the default on interactive terminals,
and has improved quality of output. (#2147)Fix regression in canonicalization from extension methods. (#2099).
Add support for Never type from analyzer (#2167, #2170).
Never type from analyzer (#2167, #2170).Fix the broken search box with --use-base-href in Flutter (#2158).
A more complete fix for the broken search box. (#2125, #2124)
base href. (#2126, #2122)grind serve-pub-package can now serve packages depending
on flutter for debugging purposes (#2130)Fix a broken search box on pages in subdirectories (#2117, #2118)
BREAKING CHANGE: no longer use in generated documentation, instead use real relative links. This may break manually constructed links that rely on bas…
<base href> in generated documentation, instead
use real relative links. This may break manually constructed links that rely
on base href, or could impact post-processing of dartdoc HTML. Most users
should not notice. A hidden flag can for now restore the old behavior, but
will be removed soon. (#2098, #2096)Internal changes to stop using newly deprecated analyzer interfaces (#2091, #2093).
Many refactoring changes to rendering and tests (#2084, #2081, #2080, #2078, #2077, #2076, #2068, #2067).
Fix edge cases on extension discovery (#2062).
Internal change to our use of FunctionTypeAliasElement for the analyzer (#2051).
Use analyzer line number library, fixing crash on empty file (#2034, #1938).
Remove obsolete references to Element.type and ElementHandle (#2028, #2031).
Support for 0.38.3 version of package:analyzer.
package:analyzer.Support the latest version of package:analyzer.
package:analyzer.Breaking change Change the default for allow-tools command line flag to false.
allow-tools command line flag to false.Fix scroll physics and behavior for Safari on iOS.
Support the latest version of package:html.
package:html.Support a new {@youtube} directive in documentation comments to embed YouTube videos.
{@youtube} directive in documentation comments to embed
YouTube videos.Add empty CSS classes in spans around the names of entities so Dashing can pick them up. (flutter/flutter#27654, #1929)
@tool directives
were not being substituted correctly in generated docs (#1930, #1934).Make hamburger menu appear in Chrome 72.
Fix alignment of search box text in Safari (#1926).
Reenable three-pane scrolling in Chrome 72 (#1922, #1921)
:hover to highlight
links (#1916, #1372)Breaking change to warning handling. Many new command line options and dartdoc_options.yaml settings can constrain and configure how warnings are inte…
Several dartdoc project infrastructure changes, including coverage support. (#1869, #1878, #1879, #1881, #1882)
Fix bug that accidentally caused dartdoc to create (and overwrite with) multiple snapshots in parallel for a single tool (#1861, #1862)
Launch helper tools and construct PackageGraphs asynchronously
Fix crash if a code reference ambiguously referred to a parameter of an optional function parameter (#1835, #1841)
Added more metadata (element name, project name, etc.) to external tool invocations.
Add 'override' to feature list for members which override a superclass
Make mixins appear under their own category, even if they are reexported
Document covariant parameters and fields
Fix incompatibility with head analyzer (endsWith exception).
Fix a problem where category ordering specified in categories option was not obeyed. Reintroduce categoryOrder option to solve this problem.
Expand categories to all top level items as well as libraries. (#1681, #1353)
Hide pragma declarations from generated docs
__404error.html, for use as an error page (#1704)Update dependencies and fork mustache4dart into dartdoc so dartdoc can resolve dependencies on Dart 2.0 stable.
Fix crash building Angular docs and problems involving special objects (#1728, #1554)
Remove name parameter from @animation parameter handling, with backwards compatibility
@animation parameter handling, with backwards compatibility
(#1715)Your coding agent can read these notes before it upgrades. Set up the MCP server →