NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #236 most downloaded on pub.dev
A portable Markdown library written in Dart that can parse Markdown into HTML.
Last release 6 months ago
18 Mar 2026
Release timing varies
gaps range from 5 weeks to 1.2 years
Most releases are documented
notes for 47 of 54 stable releases
Nothing withdrawn
no release was ever pulled
14 years old
55 releases · first in 2013
Deprecated LinkContext and BlockParser.standardBlockSyntaxes. Implementation members that should never have been made public.
data-metadata on the created pre element.package:web API references in the example.LinkContext and BlockParser.standardBlockSyntaxes.
Implementation members that should never have been made public.^3.9.0.Move to dart-lang/tools monorepo.
dart-lang/tools monorepo.web: '>=0.4.2 <2.0.0'.RangeError hazards in links (#623).LinkReferenceDefinitionSyntax publicly (#626).One column per quarter.
Fix a crash parsing alert block syntax (#584).
^3.2.0.Address a termination issue with GitHub alert syntax parsing.
Update all CommonMark specification links to 0.30.
^3.1.0.AutolinkExtensionSyntax.AlertBlockSyntax to parse GitHub Alerts.Fix delimiter row matching pattern for tables.
Fixed bug causing infinite loop for links inside tables.
Fix an issue in HeaderWithIdSyntax, do not generate heading IDs for headings with no content.
HeaderWithIdSyntax, do not generate heading IDs for headings
with no content.Remove RegExp lookarounds from autolink extension patterns. (Fixes issues when running on Safari.)
Breaking change: close() of DelimiterSyntax and LinkSyntax returns multiple nodes instead of single one.
close() of DelimiterSyntax and LinkSyntax
returns multiple nodes instead of single one.TagSyntax,
indicatorForCheckedCheckBox, and indicatorForUncheckedCheckBox.BlockHtmlSyntax, BlockTagBlockHtmlSyntax,
LongBlockHtmlSyntax, and OtherTagBlockHtmlSyntax.line properties of type String to Line.lines properties of type List<String> to
List<Line>.HtmlBlockSyntax to parse HTML blocks.enableTagfilter option to HtmlRenderer to eanble GFM tagfilter
extension.DecodeHtmlSyntax to decode HTML entity and numeric
character references.SoftLineBreakSyntax to remove the single space before the
line ending.EscapeHtmlSyntax to encode ("), (<), (>) and (&).caseSensitive to TextSyntax.parse(String text) for Document.parseLineList(List<Line> text) for Document.Line.parentSyntax for parseLines() of
BlockParser, which can be used when parsing nested blocks.disabledSetextHeading for parseLines() of
BlockParser, which is used to disable the SetextHeaderSyntax.previousSyntax for BlockParser.Fix a crash in checkbox lists when mixing checkbox items with non-checkbox items.
Breaking change: The TagSyntax is _deprecated_.
gitHubFlavored and gitHubWeb extension sets.#ff0000 color swatches.:cricket: and :beetle:. There are alternate emoji
:cricket_game: and :lady_beetle: which can be used to access the previous
emoji. update_github_emoji.dart now pulls all emoji info directly from
GitHub API and as a result we have now support the entire GitHub emoji set
(excluding the 19 custom GitHub specific emoji which have no Unicode support).TagSyntax is deprecated.DelimiterSyntax.StrikethroughSyntax now extends DelimiterSyntax
instead of TagSyntax.LinkSyntax now extends DelimiterSyntax
instead of TagSyntax.EmphasisSyntax.underscore and
EmphasisSyntax.asterisk.Breaking change: Change the type of parseInline's parameter from String? to String.
parseInline's parameter from String?
to String.bool withDefaultInlineSyntaxes and bool withDefaultBlockSyntaxes
parameters to markdownToHtml and Document to support the case of
specifying exactly the list of desired syntaxes. Thanks @chenzhiguang.
#393.Export src/emojis.dart in public API.
src/emojis.dart in public API.^1.0.0.Require the latest args, update the markdown executable to be opted in.
args, update the markdown executable to be opted in.Breaking change: The TagSyntax constructor no longer takes an end parameter. TagSyntax no longer implements onMatchEnd. Instead, TagSyntax implements…
end
parameter. TagSyntax no longer implements onMatchEnd. Instead, TagSyntax
implements a method called close which creates and returns a Node, if a
Node can be created and closed at the current position. If the TagSyntax
instance cannot create a Node at the current position, the method should
return null. Some TagSyntax subclasses will unconditionally create a tag in
close, while others may be unable to, such as LinkSyntax, if an inline or
reference link could not be resolved.Old functions still exists as deprecated, forwarding to the new functions without the preferNewest argument. Makes PackageConfig , Package and Languag…
findPackageConfigAndFile and findPackageConfigAndUri..packages file..packages files.packages.readAnyConfigFile to readConfigFile, and removedpreferNewest parameter.readAnyConfigFileUri which becomes readConfigFileUri.preferNewest argument.PackageConfig, Package and LanguageVersion @sealed classes,final in a future update.PackageConfig.minVersion to complement .maxVersion.2.ListSyntax.removeLeadingEmptyLine,
ListSyntax.removeTrailingEmptyLines, TableSyntax.parseAlignments,
TableSyntax.parseRow.BlockSyntax.canEndBlock from a getter to a
method accepting a BlockParser.Deprecate the _public_ methods ListSyntax.removeLeadingEmptyLine, ListSyntax.removeTrailingEmptyLines, TableSyntax.parseAlignments, TableSyntax.parseR…
ListSyntax.removeLeadingEmptyLine,
ListSyntax.removeTrailingEmptyLines, TableSyntax.parseAlignments,
TableSyntax.parseRow. These will be made private in a major version bump as
early as 3.0.0.Add dependency on the meta package
Overhaul table row parsing. This does not have many consequences, except that whitespace around escaped pipes is handled better. (#287).
Correctly parse a reference link with a newline in the link reference part (#281).
Do not encode HTML in link URLs. Also do not encode HTML in link text when encodeHtml is false (e.g. when used in Flutter).
encodeHtml is false (e.g. when used in Flutter).Fix an exception when a subscription to a combineLatest stream is canceled while there is an ongoing asynchronous combine callback.
combineLatest stream is canceledstartCharacter, where a
subclass can specify a single character to try to match, before matching with
more expensive regular expressions.Fix for encoding HTML for text string that contains (#263).
<pre>
(#263).Switched to using the Apache httpd mime.conf table as the source of truth for mime types. Mime type additions:
application/vnd.geogebra.slidesfont/collectionimage/jxlimage/vnd.dvb.subtitlevideo/mp2tapplication/x-font-otf => font/otfapplication/x-font-ttf => font/ttfapplication/x-font-woff => font/woffmodel/vnd.mtsapplication/inkml+xml, inkml => inkapplication/octet-stream, so => binapplication/onenote, onetoc2 => onetocapplication/pgp-signature, sig => ascapplication/tei+xml, teicorpus => teiapplication/vnd.adobe.fxp, fxpl => fxpapplication/vnd.clonk.c4group, c4u => c4gapplication/vnd.dece.data, uvvf => uvfapplication/vnd.dece.ttml+xml, uvvt => uvtapplication/vnd.eszigno3+xml, et3 => es3application/vnd.framemaker, maker => fmapplication/vnd.geometry-explorer, gre => gexapplication/vnd.grafeq, gqs => gqfapplication/vnd.ibm.modcap, listafp => afpapplication/vnd.iccprofile, icm => iccapplication/vnd.intercon.formnet, xpx => xpwapplication/vnd.kde.kpresenter, kpt => kprapplication/vnd.kde.kword, kwt => kwdapplication/vnd.kinar, knp => kneapplication/vnd.koan, skt => skpapplication/vnd.ms-project, mpt => mppapplication/vnd.palm, pqa => pdbapplication/vnd.quark.quarkxpress, qxt => qxdapplication/vnd.simtech-mindmapper, twds => twdapplication/vnd.stardivision.writer, vor => sdwapplication/vnd.sus-calendar, susp => susapplication/vnd.symbian.install, sisx => sisapplication/vnd.ufdl, ufdl => ufdapplication/vnd.visio, vsw => vsdapplication/vnd.zul, zirz => zirapplication/x-authorware-bin, x32 => aabapplication/x-blorb, blorb => blbapplication/x-cbr, cbz => cbrapplication/x-director, w3d => dirapplication/x-font-type1, pfm => pfaapplication/x-msdownload, msi => exeapplication/x-pkcs12, pfx => p12application/x-pkcs7-certificates, spc => p7bapplication/x-zmachine, z8 => z1application/xv+xml, xvml => mxmlaudio/basic, snd => auaudio/mpeg, mpga => mp3audio/vnd.dece.audio, uvva => uvaimage/tiff, tif => tiffimage/vnd.dece.graphic, uvvi => uviimage/x-freehand, fhc => fhmessage/rfc822, mime => emlmodel/mesh, silo => mshmodel/x3d+binary, x3dbz => x3dbmodel/x3d+vrml, x3dvz => x3dvmodel/x3d+xml, x3dz => x3dtext/troff, tr => ttext/uri-list, urls => uritext/x-fortran, for => fvideo/mj2, mjp2 => mj2video/vnd.dece.hd, uvvh => uvhvideo/vnd.dece.mobile, uvvm => uvmvideo/vnd.dece.pd, uvvp => uvpvideo/vnd.dece.sd, uvvs => uvsvideo/vnd.dece.video, uvvv => uvvvideo/vnd.uvvu.mp4, uvvu => uvuvideo/x-ms-asf, asx => asf> handling by always encoding as >
– unless preceded by /.blockquote by always putting the closing
tag on a new line.code elements defined with "`".<, >, and " as their respective HTML entities when
interpreted as text.encodeHtml is false (e.g.
when used in Flutter).Render element attributes in the order they were defined. Aligns more closely with the strict spec definition.
& within inline image titles.Set max SDK version to <3.0.0, and adjust other dependencies.
<3.0.0, and adjust other dependencies.* Require Dart 2.0.0-dev.
Breaking change: The Link class has been renamed LinkReference, and the Document field, refLinks, has been renamed linkReferences.
Breaking change: The Link class has been renamed LinkReference, and
the Document field, refLinks, has been renamed linkReferences.
Breaking change: Remove the deprecated ExtensionSet.gitHub field.
Use ExtensionSet.gitHubFlavored instead.
Breaking change: Make all of the fields on Document read-only.
Overhaul support for emphasis (*foo* and _foo_) and strong emphasis
(**foo** and __foo__), dramatically improving CommonMark compliance.
Overhaul support for links and images, again dramatically improving CommonMark compliance.
Improve support for tab characters, and horizontal rules.
Add support for GitHub Flavored Markdown's Strikethrough extension. See the GFM spec.
The above fixes raise compliance with the CommonMark specs to 93%, and compliance with the GFM specs to 92%.
Add an encodeHtml parameter to Document, which defaults to true. When
false, HTML entities (such as © and the < character) will not be
escaped, useful when rendering Markdown in some output format other than HTML.
Allow the binary script to take a --extension-set option.
A reminder: You can run bin/markdown.dart from anywhere via:
$ pub global activate markdown
$ markdown
Add support for GitHub's colon-based Emoji syntax. ! This is available in the gitHubWeb extension set.
gitHubWeb extension set.Add a deepCopyLinks argument to copyPath and copyPathSync .
deepCopyLinks argument to copyPath and copyPathSync.@visibleForTesting annotation from SharedStdIn.SharedStdIn.new.
AnsiCode and AnsiCodeType marked final. ThesefinalexpectApiSummaryClean, ApiSummaryFormat, andApiSummaryVerificationException to support one-liner golden file verificationdart test (e.g. test('api_summary', expectApiSummaryClean);).--write (-w), --check (-c), and --output (-o) flags to theapi_summary CLI executable.gitHub ExtensionSet into two sets: gitHubFlavored, which
represents the GitHub Flavored Markdown spec, and gitHubWeb, which
represents what GitHub actually renders Markdown.Initial stable release.
accept could cause an exception.escapeHtml function.ExtensionSet.gitHub to more closely align with GitHub markdown.Fix bug with lazy blockquote continuations
Deprecate escapeHtml. This code exists in dart:convert.
escapeHtml. This code exists in dart:convert.Fix reference code links inside blockquotes.
dart bin/markdown.dart --version now shows the package version number.
dart bin/markdown.dart --version now shows the package version number.TableSyntax.ExtensionSet.gitHub.tool/travis.sh.Parse HTML blocks more accurately, according to CommonMark.
tool/common_mark_stats.dart, which resulted in
a dramatic overestimate of our CommonMark compliance.Add playground app at https://dart-lang.github.io/markdown.
Parse hard line breaks properly (#86). Thanks @mehaase!
[ ... ] syntax when no resolver is specified (#92).BREAKING: Now following the CommonMark spec for fenced code blocks. If a language (info string) is provided, it is added as a class to the code elemen
code
element with a language- prefix. would compile too
<a href="img.prg"><img src="img.prg" alt="text"></img></a>. That same code
will now compile to <img src="img.png" alt="text" />.BREAKING: The text [foo] (bar) no longer renders as an inline link (#53).
[foo] (bar) no longer renders as an inline link (#53).markdownToHtml() and new Document() will use the
default extension set, which is ExtensionSet.commonMark, which includes
FencedCodeBlock.[foo]() now renders as an inline link.[foo]\(bar) ==> <p>[foo](bar)</p>.\\\n or <code> \n</code> (#30,
#60).peek(int linesAhead), meant for use in
subclasses.blocksInList and determineBlockItems(),
meant for use in subclasses.Breaking: Remove (probably unused) fields: LinkSyntax.resolved, InlineParser.currentSource.
Allow resolving links that contain inline syntax (#42).
Nothing published for this version
* Formatted code. * Updated readme.
Formatted code.
Updated readme.
* Updated homepage.
Nothing published for this version
Breaking Change : sdkPath now returns String? (returning null if no valid Dart SDK can be located).
sdkPath now returns String? (returning null if nodart install,dart build cli) probing Platform.resolvedExecutable, DART_ROOT,DART_SDK, system PATH (with Flutter wrapper layout awareness), andFLUTTER_ROOT.dartExecutable getter (String?) to locate the dart binary.isValidSdkPath(String candidatePath) validation helper.names are now registered with package:testsgroup() function to produce a hierarchy of groups/tests rather than a flatcurrentTestIsExpectedToFail to allow test helpers to detect when theNothing published for this version
Add showMultiSelectDialog and showSingleSelectDialog to new cli_components library, as well as an example.
showMultiSelectDialog and showSingleSelectDialog to newcli_components library, as well as an example.package:cli_util/windows_compatibility.dart library which initiallyWin32AnsiStdin class. This can be used on Windows to get^3.7.0.Add BaseDirectories class and deprecate applicationConfigHome .
BaseDirectories class and deprecate applicationConfigHome.package:meta dependency.Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →