Skip to content

[MDX] print jsx elements with js printer#19077

Draft
fisker wants to merge 1 commit into
prettier:mdxfrom
fisker:mdx-jsx
Draft

[MDX] print jsx elements with js printer#19077
fisker wants to merge 1 commit into
prettier:mdxfrom
fisker:mdx-jsx

Conversation

@fisker

@fisker fisker commented Apr 21, 2026

Copy link
Copy Markdown
Member

Description

Checklist

  • I’ve added tests to confirm my change works.
  • (If changing the API or CLI) I’ve documented the changes I’ve made (in the docs/ directory).
  • (If the change is user-facing) I’ve added my changes to changelog_unreleased/*/XXXX.md file following changelog_unreleased/TEMPLATE.md.
  • I’ve read the contributing guidelines.
@netlify

netlify Bot commented Apr 21, 2026

Copy link
Copy Markdown

Deploy Preview for prettier ready!

Name Link
🔨 Latest commit ecf5df8
🔍 Latest deploy log https://app.netlify.com/projects/prettier/deploys/69e78f120342ee00086f7b25
😎 Deploy Preview https://deploy-preview-19077--prettier.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@pkg-pr-new

pkg-pr-new Bot commented Apr 21, 2026

Copy link
Copy Markdown

Open in StackBlitz

yarn add https://pkg.pr.new/@prettier/plugin-hermes@19077.tgz
yarn add https://pkg.pr.new/@prettier/plugin-oxc@19077.tgz
yarn add https://pkg.pr.new/prettier@19077.tgz

commit: ecf5df8

@tats-u

tats-u commented Apr 22, 2026

Copy link
Copy Markdown
Contributor

Prettier PR #19077
Playground link

--parser mdx
--print-width 30

Input:

export const SomeElement = ({ children }) => <span>{children}</span>

<SomeElement
  attr1
  attr2
  attr3
  attr4
  attr5
>長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い long long long long long long long long long long long long long long long long long long long</
SomeElement>long long long long long long long long long long long long long long long 長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い段落

long long long long long long long long long long long long long long long 長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い段落

Output:

export const SomeElement = ({
  children,
}) => <span>{children}</span>;

<SomeElement
  attr1
  attr2
  attr3
  attr4
  attr5
>
  長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い
  long long long long long
  long long long long long
  long long long long long
  long long long long
</SomeElement>long
long long long long long long
long long long long long long
long long 長い長い長い長い長い
長い長い長い長い長い長い長い長
い長い長い長い長い長い長い長い
長い長い長い長い長い長い長い長
い長い長い長い長い長い長い長い
長い長い長い長い長い長い長い長
い長い長い長い長い長い長い長い
長い長い長い長い段落

long long long long long long long long long long long long long long long 長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い段落

You should not break the line after > of the start tag, or the children of the tag will be wrapped with an extra paragraph.

❌️<p> wraps the 長い長い…

  attr5
>
  長い長い…

✅️

  attr5
>長い長い

https://docusaurus.io/docs/next/migration/v3#unintended-extra-paragraphs

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

2 participants