Skip to content

Bump markdown-to-jsx to ^9.9.0 - #23230

Open
code-infra-renovate[bot] wants to merge 1 commit into
masterfrom
renovate/markdown-to-jsx-9.x
Open

Bump markdown-to-jsx to ^9.9.0#23230
code-infra-renovate[bot] wants to merge 1 commit into
masterfrom
renovate/markdown-to-jsx-9.x

Conversation

@code-infra-renovate

@code-infra-renovate code-infra-renovate Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
markdown-to-jsx (source) ^9.8.2^9.9.0 age confidence

Release Notes

quantizor/markdown-to-jsx (markdown-to-jsx)

v9.9.0

Compare Source

Minor Changes
  • 373595c: React Native output now ships with a clean, minimal default look so markdown renders with a readable hierarchy out of the box: a heading size cascade, monospace code, spacing between blocks, a blockquote rule, a proper table with a header row and aligned columns, and GFM task items with a drawn checkbox in place of the bullet. Everything stays fully customizable, each element merges your styles over the defaults per property, styles.text sets a base font and color for all text at once, and any element can be replaced with your own component via overrides.
  • 373595c: React Native output now exposes a style key for every element it draws, so nothing is stuck with a built-in look. New styles keys: checkmark and gfmTaskChecked (the checkmark glyph and the checked-box accent of a GFM task item), tableHeaderText (the bold header run), and tableCellDivider and tableRowDivider (the table grid lines). These join the existing bullet, number, and per-element keys, and each merges over the default so you can restyle just what you want. Blockquotes also render tighter: the last paragraph inside no longer leaves extra space below it.
  • 373595c: The optimizeForStreaming option now works in the React Native renderer. Previously it was ignored on native, so incomplete markdown flashed raw syntax between tokens; it now suppresses partial structures the same way the web renderers do, which makes streaming LLM responses read smoothly.
Patch Changes
  • 8c01560: The Markdown output compiler now produces Markdown that parses back to the same document across many more constructs. Literal special characters in text are escaped so they stay literal, tables emit outer pipes and escape cell pipes, loose lists keep their spacing instead of collapsing to tight, fenced and inline code widen their delimiters past any backticks inside, link and image titles containing quotes are escaped, raw HTML attributes keep their original values instead of being mangled, and an empty inline element like <video></video> no longer splits the surrounding paragraph.
  • 373595c: React Native footnote references now render as a superscript, matching the web renderers, instead of bold. Numeric markers use Unicode superscript characters so they sit raised and scale with the surrounding text, and you can style them with the new styles.footnote option. In the footnotes list, each note now reads on one line next to its number instead of below it.
  • 373595c: Fixed React key warnings in React Native when raw HTML mixed with other content, such as a <div> holding paragraphs with text between them, or a custom component following a heading. These elements now receive unique keys.
  • 373595c: React Native no longer crashes when rendering content that mixes text with block elements or images. Previously, text placed next to a block (in a list, table cell, raw HTML block, preformatted block, or footnote) threw "Text strings must be rendered within a <Text> component", and an image inside a paragraph, heading, link, or emphasis threw "Unexpected view type nested under text node" on Android. Now a container follows its content: it stays a text element when everything inside is inline, and becomes a view (grouping text runs while laying images and blocks out alongside) when it holds a block. Image links remain tappable.
  • 373595c: Faster React Native rendering: compiling a large document now runs roughly 5-7% quicker, with the biggest gains on list- and heading-heavy content. Output is unchanged.
  • 4008830: Streaming parses of deeply nested content (blockquotes and long lists) are faster. When optimizeForStreaming is on, the incomplete-syntax suppression now runs only on the block that can hold the document's live edge instead of re-scanning every closed block above it, so re-parsing on each streamed token does less work on outline-heavy documents.
  • 4008830: While streaming markdown with optimizeForStreaming, a table renders smoothly instead of flashing raw syntax. A partial table (a header row before its divider row, or the opening | of a new table) stays hidden until enough has streamed in to render, and once the table appears it no longer disappears and reappears as each new row arrives. This holds consistently across every renderer.
  • 4008830: Raw HTML in your markdown is now stripped of dangerous attributes before it reaches output, closing a cross-site scripting hole that affected every renderer. Inline event handlers (onclick, onerror, onload, and any other on* attribute) and URL attributes carrying a javascript:, vbscript:, or non-image data: scheme (in href, src, action, formaction, poster, cite, and similar) are removed, srcdoc is dropped, and schemes hidden behind HTML entities such as java&#&#8203;9;script: are caught too. Safe attributes keep their original formatting, data:image URLs still work, and event handlers passed as expressions to your own components (<MyButton onClick={fn} />), along with bare boolean props on them (<MyButton onClick />), are preserved. Previously the HTML and Markdown string outputs emitted these attributes verbatim, and Solid and Vue injected them without protection.
  • 621de7e: URLs containing emoji and other non-BMP Unicode characters now render without crashing.
  • 9b3a406: The Vue renderer's renderRule types now reflect that a single rule can render more than one sibling node. The next() callback and a custom renderRule may return an array of nodes, matching what the renderer already produced at runtime, so TypeScript no longer flags valid pass-through overrides.

Configuration

📅 Schedule: (in timezone UTC)

  • Branch creation
    • Between 12:00 AM and 04:59 AM, only on Monday (* 0-4 * * 1)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by self-hosted Renovate.

@code-infra-renovate code-infra-renovate Bot added the dependencies Update of dependencies. label Jul 27, 2026
@code-infra-dashboard

code-infra-dashboard Bot commented Jul 27, 2026

Copy link
Copy Markdown

Deploy preview

https://deploy-preview-23230--material-ui-x.netlify.app/
QR code for https://deploy-preview-23230--material-ui-x.netlify.app/

Bundle size

Bundle Parsed size Gzip size
@mui/x-data-grid 0B(0.00%) 0B(0.00%)
@mui/x-data-grid-pro 0B(0.00%) 0B(0.00%)
@mui/x-data-grid-premium 0B(0.00%) 0B(0.00%)
@mui/x-charts 0B(0.00%) 0B(0.00%)
@mui/x-charts-pro 0B(0.00%) 0B(0.00%)
@mui/x-charts-premium 0B(0.00%) 0B(0.00%)
@mui/x-date-pickers 0B(0.00%) 0B(0.00%)
@mui/x-date-pickers-pro 0B(0.00%) 0B(0.00%)
@mui/x-tree-view 0B(0.00%) 0B(0.00%)
@mui/x-tree-view-pro 0B(0.00%) 0B(0.00%)
@mui/x-scheduler 0B(0.00%) 0B(0.00%)
@mui/x-scheduler-premium 0B(0.00%) 0B(0.00%)
@mui/x-chat 🔺+2.36KB(+0.74%) 🔺+1.01KB(+1.12%)
@mui/x-license 0B(0.00%) 0B(0.00%)

Details of bundle changes


Check out the code infra dashboard for more information about this PR.

@LukasTy
LukasTy requested review from a team and Copilot July 27, 2026 11:29

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Updates the markdown-to-jsx dependency across the monorepo (docs site and @mui/x-chat) to pick up the latest 9.9.x release.

Changes:

  • Bumped markdown-to-jsx from ^9.8.2 to ^9.9.0 in @mui/x-chat.
  • Bumped markdown-to-jsx from ^9.8.2 to ^9.9.0 in the docs site.
  • Regenerated pnpm-lock.yaml to reflect the updated resolution.

Reviewed changes

Copilot reviewed 2 out of 3 changed files in this pull request and generated 1 comment.

File Description
pnpm-lock.yaml Updates lockfile entries/resolutions for markdown-to-jsx@9.9.0.
packages/x-chat/package.json Bumps @mui/x-chat’s markdown-to-jsx dependency to ^9.9.0.
docs/package.json Bumps docs site markdown-to-jsx dependency to ^9.9.0.
Files not reviewed (1)
  • pnpm-lock.yaml: Generated file

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

"@mui/x-internals": "workspace:*",
"clsx": "catalog:",
"markdown-to-jsx": "^9.8.2",
"markdown-to-jsx": "^9.9.0",
@github-actions

Copy link
Copy Markdown
Contributor

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@github-actions github-actions Bot added the PR: out-of-date The pull request has merge conflicts and can't be merged. label Jul 27, 2026
@code-infra-renovate
code-infra-renovate Bot force-pushed the renovate/markdown-to-jsx-9.x branch from 9c15af8 to f6445ed Compare July 27, 2026 15:13
@github-actions github-actions Bot removed the PR: out-of-date The pull request has merge conflicts and can't be merged. label Jul 27, 2026
@code-infra-renovate
code-infra-renovate Bot force-pushed the renovate/markdown-to-jsx-9.x branch from f6445ed to eaab05b Compare July 31, 2026 11:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Update of dependencies.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant