NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #1901 most downloaded on npm
A markdown parser built for speed
Last release 13 days ago
22 Sep 2026
Ships fairly regularly
a new release about every 2 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
15 years old
225 releases · first in 2011
allow indented lines in setext heading text
One column per quarter.
allow tabs in the thematic break that ends a list item
allow a tab before the closing sequence of an ATX heading
keep the em/strong mask the same length as the source
an unmatched strong run before emphasis stays literal
fall back to default checkbox renderer when extension returns false
Avoid O(n^2) backtracking in HTML block close and tilde interrupt regexes ( #4014 ) ( f945fc5 ), closes #3991
Avoid O(n^2) backtracking in inline link href regex
parse empty list item with trailing space
avoid task checkbox for setext heading text
fix infinite loop for indented code blank line
rules: ensure lookbehind regex is evaluated correctly by minifiers
Bump typescript from 5.9.3 to 6.0.2
avoid race condition in async parallel parse/parseInline with hooks
Fix catastrophic backtracking (ReDoS) in link/reflink label regex
prevent ReDoS in inline link regex title group
## 17.0.3 (2026-02-17) ### Bug Fixes * escape image alt text
fix strikethrough flanking rules
fix block elements in task item
only create tokens inside tokenizers
Avoid RegExp lookbehind assertions
resolve even-numbered backtick precedence issue
Fix backtick and code rendering in links
# 16.3.0 (2025-09-14) ### Features * add emStrongMask hook
allow escaped newline in link text
add def token in tokens and renderer
fix multiline list item adds extra newline to raw
fix stong and em tokens in angle brackets
add generic types for parser and renderer output
remove cjs build & update min node to 20
minify ./lib/marked.esm.js and ./lib/marked.umd.js
remove ./marked.min.js use ./lib/marked.umd.js instead
remove ./lib/marked.cjs
update minimum supported node version to 20 to support require('marked.esm.js'). see https://nodejs.org/docs/latest-v20.x/api/modules.html#loading-ecmascript-modules-using-require
This seems to break Jest since it doesn't work with esm by default.
You need to transform marked with:
transformIgnorePatterns: ['/node_modules/(?!(marked)/)'],
see Jest docs for more info
use esbuild for accurate sourcemaps
fix image alt text rendered to match common mark
fix non-breaking space in link url
fix link url with no closing parenthesis
fix emstrong inside escaped backticks
## 15.0.7 (2025-02-10) ### Bug Fixes * fix table rendered as heading
fix strikethrough inside strong and em to follow gfm
allow strikethrough inside strong and em to follow gfm
fix list with no items looping forever
update punctuation regex syntax to fix babel mistaken transpile
update punctuation regex syntax for compatibility
Remove unused plus typescript tightening
## 14.1.2 (2024-09-08) ### Bug Fixes * fix html following list
## 14.1.1 (2024-09-04) ### Bug Fixes * Don't replace tabs with spaces
allow async option to dictate type returned
fix recursion-like stack overflow error caused by the old render…
fix list item with blank first line
fix this type in extension methods
Fix blockquote code continuation
Most extensions that update marked renderers should still work with this version but will break in a future major version.
Extensions that change marked renderers will need to be updated and use new option useNewRenderer and accept a token object instead of multiple parameters. See updated Renderer docs
// v12 renderer extension
const extension = {
renderer: {
heading(text, level) {
// increase level by 1
return `<h${level + 1}>${text}</h${level + 1}>`;
}
}
};
marked.use(extension);
// v13 renderer extension
const extension = {
useNewRenderer: true,
renderer: {
heading(token) {
// increase depth by 1
const text = this.parser.parseInline(token.tokens);
const level = token.depth;
return `<h${level + 1}>${text}</h${level + 1}>`;
}
}
};
marked.use(extension);
fix Setext continuation in blockquote
## 12.0.1 (2024-03-06) ### Bug Fixes * fix setext heading interupts
Update HTML block tags: add search, remove source
<!--> and <!--->improve lexing inline elements step's performance
Your coding agent can read these notes before it upgrades. Set up the MCP server →