Bump markdown-to-jsx to ^9.9.0 - #23230
Open
code-infra-renovate[bot] wants to merge 1 commit into
Open
Conversation
Deploy previewBundle size
Check out the code infra dashboard for more information about this PR. |
Contributor
There was a problem hiding this comment.
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-jsxfrom^9.8.2to^9.9.0in@mui/x-chat. - Bumped
markdown-to-jsxfrom^9.8.2to^9.9.0in the docs site. - Regenerated
pnpm-lock.yamlto 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", |
Contributor
|
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
code-infra-renovate
Bot
force-pushed
the
renovate/markdown-to-jsx-9.x
branch
from
July 27, 2026 15:13
9c15af8 to
f6445ed
Compare
code-infra-renovate
Bot
force-pushed
the
renovate/markdown-to-jsx-9.x
branch
from
July 31, 2026 11:03
f6445ed to
eaab05b
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
^9.8.2→^9.9.0Release Notes
quantizor/markdown-to-jsx (markdown-to-jsx)
v9.9.0Compare 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 yourstylesover the defaults per property,styles.textsets a base font and color for all text at once, and any element can be replaced with your own component viaoverrides.373595c: React Native output now exposes a style key for every element it draws, so nothing is stuck with a built-in look. Newstyleskeys:checkmarkandgfmTaskChecked(the checkmark glyph and the checked-box accent of a GFM task item),tableHeaderText(the bold header run), andtableCellDividerandtableRowDivider(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: TheoptimizeForStreamingoption 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 newstyles.footnoteoption. 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. WhenoptimizeForStreamingis 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 withoptimizeForStreaming, 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 otheron*attribute) and URL attributes carrying ajavascript:,vbscript:, or non-imagedata:scheme (inhref,src,action,formaction,poster,cite, and similar) are removed,srcdocis dropped, and schemes hidden behind HTML entities such asjava&#​9;script:are caught too. Safe attributes keep their original formatting,data:imageURLs 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'srenderRuletypes now reflect that a single rule can render more than one sibling node. Thenext()callback and a customrenderRulemay 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)
* 0-4 * * 1)🚦 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.
This PR was generated by self-hosted Renovate.