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
spaces on a newline after a table
Fix every third list item broken (#2318) (346b162), closes #2314
One column per quarter.
## 4.0.6 (2021-12-02) ### Bug Fixes * speed up parsing long lists
table after paragraph without blank line
## 4.0.4 (2021-11-19) ### Bug Fixes * fix cli
## 4.0.3 (2021-11-13) ### Bug Fixes * build min from umd
Create separate CJS and UMD builds
Set commonJS code as main in package.json
Default export removed. Use import { marked } from 'marked' or const { marked } = require('marked') instead.
import { marked } from 'marked' or const { marked } = require('marked') instead./lib/marked.js removed. Use /marked.min.js in script tag instead.marked.parse(...) instead of marked(...)## 3.0.8 (2021-10-24) ### Bug Fixes * walkTokens uses marked as this
use named exports only for ESM build
## 3.0.6 (2021-10-06) ### Bug Fixes * Remove esm interop
Expose named exports for ESM build
fix detection of orphaned emStrong delimiters
## 3.0.3 (2021-09-08) ### Bug Fixes * fix space at end of table line
stop table at lines with only whitespace
## 3.0.1 (2021-08-23) ### Bug Fixes * fix gfm urls after link
Tokenizers lex their own child tokens
this.lexer.inline(text, tokens). The inline function will queue the token creation until after all block tokens are created.this object will include the lexer as a property. this.inlineTokens becomes this.lexer.inline.this object will include the parser as a property. this.parseInline becomes this.parser.parseInline.tag and inlineText tokenizer function signatures have changed.nptable tokenizer is removed and merged with table tokenizer.table tokens header property changed to contain an array of objects for each header cell with text and tokens properties.table tokens cells property changed to rows and is an array of rows where each row contains an array of objects for each cell with text and tokens properties.v2 table token:
{
"type": "table",
"align": [null, null],
"raw": "| a | b |\n|---|---|\n| 1 | 2 |\n",
"header": ["a", "b"],
"cells": [["1", "2"]],
"tokens": {
"header": [
[{ "type": "text", "raw": "a", "text": "a" }],
[{ "type": "text", "raw": "b", "text": "b" }]
],
"cells": [[
[{ "type": "text", "raw": "1", "text": "1" }],
[{ "type": "text", "raw": "2", "text": "2" }]
]]
}
}
v3 table token:
{
"type": "table",
"align": [null, null],
"raw": "| a | b |\n|---|---|\n| 1 | 2 |\n",
"header": [
{
"text": "a",
"tokens": [{ "type": "text", "raw": "a", "text": "a" }]
},
{
"text": "b",
"tokens": [{ "type": "text", "raw": "b", "text": "b" }]
}
],
"rows": [
{
"text": "1",
"tokens": [{ "type": "text", "raw": "1", "text": "1" }]
},
{
"text": "2",
"tokens": [{ "type": "text", "raw": "2", "text": "2" }]
}
]
}
update commonmark spec to v0.30
add Node.js 10 to CI and loosen engines field
## 2.1.1 (2021-06-16) ### Bug Fixes * fix node v12
Custom Tokenizer/Renderer extensions
## 2.0.7 (2021-06-01) ### Bug Fixes * em strong
fix autolink email after single space
call walkTokens when calling marked with a callback
## 2.0.4 (2021-05-20) ### Bug Fixes * Fix indented markdown in html
actually add a type property to the def token
## 2.0.2 (2021-04-10) ### Bug Fixes * add type property on def token
## 2.0.1 (2021-02-27) ### Bug Fixes * fix items between lists
Join adjacent inlineText tokens
em and strong tokenizers have been merged into one emStrong tokenizer.code and text tokenizers do not get passed all tokens as a second parameter.lib/marked.js but some pollyfills may be needed for IE 11 in the future.allow sublist to be single space in pedantic
leave whitespace only lines alone
Replace use of startsWith and endsWith with regex for IE11 (#1877) (4fdde20), closes #1876
fix atx heading and make regex safe (#1853) (70ee29c) possible breaking change: When using the block.heading rule the text provided in capture group 2…
Possible Breaking Change: When using the inline.del rule the text is provided in capture group 2 instead of 1.
## 1.2.3 (2020-11-04) ### Bug Fixes * list alignment
## 1.2.2 (2020-10-21) ### Bug Fixes * remove string.repeat for ie11
re-release of v 1.1.2 since semantic release picked up the wrong version
re-release of v 1.1.2 since semantic release picked up the wrong version
Add dry run capabilities to default slugger #1728
## 1.1.2 (2020-10-21) ### Bug Fixes * fix indented code in list item
Fix image links with escaped brackets #1683
) delimiter #1704npm run rules #1726Fix renderer.code includes space at beginning of each line of code #1645
walkTokens option #1664renderer.code includes space at beginning of each line of code #1645browser field in package.json pointing to es5 output #1661tokenizer to option docs #1662Add inline tokens to marked.lexer output #1627
marked.lexer output #1627Tokenizer to allow extending token creation #1637marked.use() method to extend options #1646_) breaks links containing underscores #1641Add html to TextRenderer for html in headings #1622
Fix GFM Example 116 code fences #1600
marked --help #1588Separate source into modules #1563 #1572 #1573 #1575 #1576 #1581
baseUrl option #1526Deprecate sanitize and sanitizer options #1504
paragraph and text tokens #1504sanitize and sanitizer options #1504fences to CommonMark #1511tables to GFM #1511tables option #1511Fix issue with mixed content #1451
<em> issue with mixed content #1451breaks: true #1507New line after table with escaped pipe #1439
listitem function #1440--test and fix argv parameters #1442--version flag to print marked version #1448Fix parenthesis url redos #1414
--save option as it isn't required anymore #1422Drop support for Node v0.10 and old browsers such as Internet Explorer
slugger to Renderer.prototype.heading method #1401
marked.Slugger #1401breaks option description #1381Fix emphasis closing by single _ (part of left-flanking run) #1351
files key to package.json to prevent publishing unused files #1367Fix inline code regex and prevent REDOS #1337
@markedjs/html-differ to prevent REDOS #1331escape() function to improve performance 10-20% #975Use rtrim, not unsafe /X+$/ #1260
Fix unsafe link regex (#1223, #1227)
heading regex (#1224)link regex (#1223, #1227)<em> less than 3 chars (#1181)<pre> code blocks so there is no more trailing \n (#1266)language- (#1265)0.3.18 did not have changes to min.
0.3.18 did not have changes to min.
Supported Markdown flavors: CommonMark 0.28 and GitHub Flavored Markdown 0.28
The elephant in the room: A security vulnerability was discovered and fixed. Please note, if something breaks due to these changes, it was not our int…
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →