NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #1704 most downloaded on npm
Markdown-it - modern pluggable markdown parser.
Last release 23 days ago
12 Sep 2026
Ships unpredictably
gaps range from 1 weeks to 1.9 years
Nearly every release is documented
notes for 58 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
12 years old
87 releases · first in 2014
Fixed quadratic complexity in smartquotes when quote types don't match, #1209. Also limited the smartquotes stack to 1000 unmatched openers.
doc: replace oxide theme with custom one.
One column per quarter.
Exposed parser internals classes as static properties on markdownit.
markdownit.@types/markdown-it if you used it.markdown-it/browser export with bundled ESM and UMD builds.argparse 3.reference_definition tokens. They remain stripped by default
for backwards compatibility, #1055. Also adjusted the line-break heuristic
to keep output exactly the same.linkify-it => v6
dist/ and
dist/browser/.entities => v8. Can be rolled back to v7 if compatibility issues happen.validateLink, normalizeLink and normalizeLinkText from properties
to prototype methods.markdown-it/lib/* and similar).
Use the static classes exposed on markdownit instead.StateBlock#ddIndent, #1139. Update
markdown-it-deflist to keep it working.text_join rule to process image alt text.Nothing published for this version
Nothing published for this version
Reworked build pipeline & tools.
linkify-it to 5.0.2.Don't end HTML comment blocks on a blank line, #1155.
isPunctCharCode to utilities.;, #1096.lheading rule, #1131.Fixed regression from v13 in linkify inline rule. Specific patterns could cause high CPU use. Thanks to @ltduc147 for report.
Updated CM spec compatibility to 0.31.2, #1009.
Drop ancient browsers support (use .fromCodePoint and other features).
.fromCodePoint and other features).markdown-it-emoji plugin.dist/ folder from repo, build on package publish.punicode.js as external dependency.Fixed crash/infinite loop caused by linkify inline rule, #957.
line or pos counters
(previously, markdown-it would likely go into infinite loop instead), #847.Merge branch 'master' of github.com:markdown-it/markdown-it
Merge branch 'master' of github.com:markdown-it/markdown-it
linkify-it to 4.0.1. That should fix some hangs, caused by wrong
data, returned from linkify-it.Added a new token type text_special to store escaped characters, same as text but unaffected by replacement plugins (smartquotes, typographer, linkifi
text_special to store escaped characters, same as text but
unaffected by replacement plugins (smartquotes, typographer, linkifier, etc.).text_join in core ruler. Text replacement plugins may choose to
insert themselves before it.(p) is no longer replaced with § by typographer (conflicts with ℗), #763.text_collapse rule is renamed to fragments_join.\(c) or google\.com are no longer replaced).http://example.org/foo._bar_-_baz
is now a single link, not emphasized). Emails and fuzzy links are not affected by this.Fix possible ReDOS in newline rule. Thanks to @MakeNowJust.
Fix corner case when tab prevents paragraph continuation in lists, #830.
StateInline.delimiters[].jump is removed.
StateInline.delimiters[].jump is removed.***<10k stars>***a***<10k stars>*** case.Ordered lists: add order value to token info.
Updated CM spec compatibility to 0.30.
Newline in alt should be rendered, #775.
alt should be rendered, #775.HTML block tags with === inside are no longer incorrectly interpreted as headers, #772.
=== inside are no longer incorrectly interpreted as headers, #772.Fix crash introduced in 12.0.3 when processing strikethrough (~~) and similar plugins, #742.
12.0.3 when processing strikethrough (~~) and similar plugins, #742.[]( ) is no longer a valid link.
[](<foo<bar>) is no longer a valid link.[](url (xxx()) is no longer a valid link.[](url\ xxx) is no longer a valid link.<? ... ?> in an inline context.<meta> html tag to appear in an inline context.Three pipes (|\n|\n|) are no longer rendered as a table with no columns, #724.
|\n|\n|) are no longer rendered as a table with no columns, #724.Fix tables inside lists indented with tabs, #721.
.gitattributes, force unix eol under windows, for development.
.gitattributes, force unix eol under windows, for development.highlight(code, lang, attrs), #626.rollup.js to browserify sources.bower.json (bower reached EOL).specsplit.js options.Makefile in favour of npm scrips.%25 is no longer decoded in beautified urls, #720.Fix blockquote lazy newlines, #696.
Bumped linkify-it to 3.0.0, #661 + allow unlimited . inside links.
linkify-it to 3.0.0, #661 + allow unlimited . inside links.nyc for coverage reports.Fix quadratic parse time for some combinations of pairs, #583. Algorithm is now similar to one in reference implementation.
Remove extra characters from line break check. Leave only 0x0A & 0x0D, as in CommonMark spec, #581.
Fix possible corruption of open/close tag levels, #466
Updated CM spec compatibility to 0.29.
Fix --no-html CLI option, #476.
--no-html CLI option, #476.Fix smartquotes around softbreaks, #430.
Updated CM spec compatibility to 0.28.
Fix blockquote termination inside lists, #386.
Fix blockquote termination by list item, #338.
Remove tabs at the beginning of the line in paragraphs.
Add -o / --output option to CLI, #312.
-o / --output option to CLI, #312.Add missed h2..h6 to whitelisted block tags.
Updated CM spec compatibility to 0.27 (no significant changes).
~~~ in info, #301.Make link parse helpers (md.helpers) pluggable, #299.
md.helpers) pluggable, #299.Tables: allow tab characters in markup
Remove testing in old nodes (but still use es5).
*foo**bar**baz* is now parsed as <strong>
inside <em>).Fence renderer: fix concat of class array, #276.
Bump linkify-it dependency to 2.0.0. --- no longer terminates autodetected links by default. md.linkifier.set('---', true) will return old behaviour.
linkify-it dependency to 2.0.0. --- no longer terminates
autodetected links by default. md.linkifier.set('---', true) will return old
behaviour.linkify-it was changed.
You will not be affected anyhow, if not used direct access to
require('linkify-it/re') for customizations.Render code_inline & code_block attributes if exist.
code_inline & code_block attributes if exist.Updated fence renderer to not mutate token. Token stream should be immutable after renderer call.
fence renderer to not mutate token. Token stream should be
immutable after renderer call.Process \r the same way as \n and \r\n\, #252.
\r the same way as \n and \r\n\, #252.Added Token.attrGet() method for convenience, #251.
Token.attrGet() method for convenience, #251.Security fix: possible ReDOS in linkify-it (forced bump of linkify-it & uc-micro dependencies). New installs will use fixed packages automatically, bu…
linkify-it (forced bump of linkify-it &
uc-micro dependencies). New installs will use fixed packages automatically,
but we bumped markdown-it version for sure & for web builds.Fix: should not escape twice content of image alt attribute, #246.
Improve support of missing values in tables, #224.
Maintenance release. Version bump caused by notable changes in CM spec (multiline setext headers, no spaces inside links, ...). API was not changed.
Token: added .attrSet() & .attrJoin() methods.
.attrSet() & .attrJoin() methods.Allow single column and mismatched columns count in tables.
content property in image token with alt source.Fix meta information (token.markup and token.info) for autolink tokens.
token.markup and token.info) for autolink tokens.Improved tables compatibility with github, #120.
Internal API change. Due to new CM spec requirements, we had to update internals. That should not touch ordinary users, but can affect some external p
Updated HTML blocks logic to CM 0.21 spec.
Fix class name injection in fence renderer.
Your coding agent can read these notes before it upgrades. Set up the MCP server →