Skip to content

fix: keep a block quote open after a lazy line in a nested block quote - #4175

Merged
UziTech merged 1 commit into
markedjs:masterfrom
b84330808:fix-nested-blockquote-lazy-outer
Nov 2, 2026
Merged

UziTech merged 1 commit into
markedjs:masterfrom
b84330808:fix-nested-blockquote-lazy-outer

Conversation

@b84330808

Copy link
Copy Markdown
Contributor

Marked version: master (8babc79)

Markdown flavor: CommonMark

Description

After a lazy continuation line in a nested block quote, a following line that starts with > but doesn't continue the inner paragraph (a blank >, a heading, ---, a list item, a fence) starts a new top-level block quote. In CommonMark it still belongs to the outer block quote.

> > a
b
>
> c

Expectation

<blockquote>
<blockquote>
<p>a
b</p>
</blockquote>
<p>c</p>
</blockquote>

Result

<blockquote>
<blockquote>
<p>a
b</p>
</blockquote>
</blockquote>
<blockquote>
<p>c</p>
</blockquote>

Demo

What was changed

When the nested block quote branch in blockquote() re-parses the continuation and some lines are left over, the loop now keeps going if the first leftover line starts with >, the same way the nested list branch right below it does. Any other leftover line still ends the block quote, as before. Added test/specs/new/blockquote_nested_lazy_outer_continuation (blank >, heading, --- and list item after the lazy line); the expected HTML matches commonmark.js.

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.

I used Claude Code to write this change.

After a lazy continuation line in a nested block quote, a following line
that starts with ">" but does not continue the inner paragraph (a blank
">", a heading, a thematic break, a list item, ...) started a new
top-level block quote. It belongs to the outer block quote, as in
CommonMark.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@vercel

vercel Bot commented Nov 1, 2026

Copy link
Copy Markdown

@b84330808 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 Nov 1, 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 Nov 1, 2026 2:35pm 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! 💯

@UziTech
UziTech merged commit 1d7272f into markedjs:master Nov 2, 2026
8 checks passed
github-actions Bot pushed a commit that referenced this pull request Nov 2, 2026
## [18.1.3](v18.1.2...v18.1.3) (2026-11-02)

### Bug Fixes

* allow trailing tabs after a setext heading underline ([#4152](#4152)) ([1f1b480](1f1b480))
* avoid quadratic scan for unmatched emphasis delimiters ([#4103](#4103)) ([eab1e48](eab1e48)), closes [#4099](#4099)
* await promise arrays from walkTokens extensions ([#4153](#4153)) ([c38704c](c38704c))
* **cli:** honor defaults and config when outputting tokens ([#4146](#4146)) ([9470e8f](9470e8f))
* collapse internal whitespace when normalizing link labels ([#4157](#4157)) ([02c73e8](02c73e8))
* do not allow a blank line inside a link reference definition label ([#4165](#4165)) ([f3d21af](f3d21af))
* don't treat an escaped ) or quote as an inline link or title closer ([#4151](#4151)) ([9cb84e0](9cb84e0))
* end a list item before a lazy line after an html block ([#4159](#4159)) ([7ba42f4](7ba42f4))
* end blockquote before a lazy line after a table ([#4161](#4161)) ([e7dcf52](e7dcf52))
* isolate extension names from Object.prototype ([#4177](#4177)) ([5cb03bd](5cb03bd))
* keep a block quote open after a lazy line in a nested block quote ([#4175](#4175)) ([1d7272f](1d7272f))
* only close a code fence with the opening fence character ([#4164](#4164)) ([1d4d8fe](1d4d8fe))
* preserve zero-valued custom renderer results ([#4162](#4162)) ([e43ceef](e43ceef))
* recognize task list items when a tab follows the checkbox ([#4163](#4163)) ([64a299d](64a299d))
* start a GFM www autolink only at a word boundary ([#4166](#4166)) ([84beefb](84beefb))

### Performance Improvements

* fix backtracking in padantic html ([#4173](#4173)) ([2d4a23c](2d4a23c))

This branch was successfully deployed

1 active deployment
Preview — 75e77119 Deployed Nov 1, 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