Skip to content

fix: end blockquote before a lazy line after a heading, hr or html block - #4115

Merged
UziTech merged 1 commit into
markedjs:masterfrom
NgoQuocViet2001:fix-blockquote-lazy-after-leaf
Oct 6, 2026
Merged

UziTech merged 1 commit into
markedjs:masterfrom
NgoQuocViet2001:fix-blockquote-lazy-after-leaf

Conversation

@NgoQuocViet2001

Copy link
Copy Markdown

Marked version: 18.0.14 (master c61543e)

Markdown flavor: CommonMark|GitHub Flavored Markdown

Description

A line without > only continues a block quote when it is paragraph continuation text (CommonMark 5.1). Marked already ends the quote when the last token inside it is a code block. It does not do this after a heading, thematic break or HTML block, so the paragraph after one of those is pulled into the quote.

This change adds heading, hr and html to the existing code check in Tokenizer.blockquote. The remaining lines are then left for the outer lexer, the same way the code case already works. Pedantic mode goes through the same path, so it changes too, as it already does for code. I can add a !this.options.pedantic guard if you'd rather keep Markdown.pl behavior there.

Expectation

> # Note\nThis paragraph is not quoted. gives <blockquote><h1>Note</h1></blockquote><p>This paragraph is not quoted.</p>, matching commonmark.js and markdown-it.

Result

<blockquote><h1>Note</h1><p>This paragraph is not quoted.</p></blockquote>. The same happens after > Foo\n> ---, > ***, > <div> and > <!-- c -->.

What was attempted

marked.parse('> # Note\nThis paragraph is not quoted.'), with gfm on or off.

Contributor

  • Test(s) exist to ensure functionality and minimize regression (if no tests added, list tests covering this PR); or,
  • no tests required for this PR.
  • If submitting new feature, it has been documented in the appropriate places.

Committer

In most cases, this should be a different person than the contributor.

@vercel

vercel Bot commented Sep 29, 2026

Copy link
Copy Markdown

@NgoQuocViet2001 is attempting to deploy a commit to the MarkedJS Team on Vercel.

A member of the Team first needs to authorize it.

@vercel

vercel Bot commented Sep 29, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
marked-website Ready Ready Preview Sep 29, 2026 2:49pm UTC

Request Review

@UziTech UziTech left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice catch! 💯

@styfle styfle left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@UziTech
UziTech merged commit 9e64a6a into markedjs:master Oct 6, 2026
8 checks passed
github-actions Bot pushed a commit that referenced this pull request Oct 12, 2026
## [18.1.1](v18.1.0...v18.1.1) (2026-10-12)

### Bug Fixes

* **cli:** honor an explicitly empty string input ([#4113](#4113)) ([ec3a4e5](ec3a4e5))
* end blockquote before a lazy line after a heading, hr or html block ([#4115](#4115)) ([9e64a6a](9e64a6a))
* keep a backslash in a code span from hiding emphasis ([#4117](#4117)) ([6a57018](6a57018))
* keep a decoded character reference from forming a new one ([#4111](#4111)) ([6bbac0c](6bbac0c)), closes [#38](#38) [#112](#112)
* let indented and type 3-5 html blocks interrupt a paragraph ([#4124](#4124)) ([eaa1fff](eaa1fff))
* make walkTokens linear by appending values in place ([#4121](#4121)) ([627d9ae](627d9ae)), closes [#4120](#4120)
* match pre, script, style and textarea as whole tag names ([#4114](#4114)) ([0db74cb](0db74cb))
* preserve enclosing link state after parsing images ([#4123](#4123)) ([cc07bb9](cc07bb9))
* respect tab stops in list continuation indentation ([#4119](#4119)) ([4bd2528](4bd2528))

### Performance Improvements

* avoid repeated raw string copies in nested lists ([#4082](#4082)) ([7e8754d](7e8754d))

This branch was successfully deployed

1 active deployment
Preview — ac4719e1 Deployed Sep 29, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants