diff --git a/changelog_unreleased/mdx/pr-9267.md b/changelog_unreleased/mdx/pr-9267.md
new file mode 100644
index 000000000..4997d105f
--- /dev/null
+++ b/changelog_unreleased/mdx/pr-9267.md
@@ -0,0 +1,35 @@
+#### Fix JSX format (#9267 by @fisker)
+
+
+```markdown
+
+# title
+
+
+
+text
+
+
+
+
+# title
+
+
+
+
+text
+
+
+
+
+(Extra empty lines added after `` and ``)
+
+
+# title
+
+
+
+text
+
+
+```
diff --git a/src/language-markdown/printer-markdown.js b/src/language-markdown/printer-markdown.js
index c338ce9c5..1ced1c0a9 100644
--- a/src/language-markdown/printer-markdown.js
+++ b/src/language-markdown/printer-markdown.js
@@ -431,11 +431,12 @@ function genericPrint(path, options, print) {
case "liquidNode":
return concat(replaceEndOfLineWith(node.value, hardline));
// MDX
+ // fallback to the original text if multiparser failed
+ // or `embeddedLanguageFormatting: "off"`
case "importExport":
- case "jsx":
- // fallback to the original text if multiparser failed
- // or `embeddedLanguageFormatting: "off"`
return concat([node.value, hardline]);
+ case "jsx":
+ return node.value;
case "math":
return concat([
"$$",
diff --git a/tests/mdx/embedded-language-formatting/__snapshots__/jsfmt.spec.js.snap b/tests/mdx/embedded-language-formatting/__snapshots__/jsfmt.spec.js.snap
new file mode 100644
index 000000000..28d11e582
--- /dev/null
+++ b/tests/mdx/embedded-language-formatting/__snapshots__/jsfmt.spec.js.snap
@@ -0,0 +1,30 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`issue-9260.mdx - {"embeddedLanguageFormatting":"off"} format 1`] = `
+====================================options=====================================
+embeddedLanguageFormatting: "off"
+parsers: ["mdx"]
+printWidth: 80
+ | printWidth
+=====================================input======================================
+# title
+
+
+
+CR: Carriage Return, \\r
+LF: Line Feed, \\n
+
+
+
+=====================================output=====================================
+# title
+
+
+
+CR: Carriage Return, \\r
+LF: Line Feed, \\n
+
+
+
+================================================================================
+`;
diff --git a/tests/mdx/embedded-language-formatting/issue-9260.mdx b/tests/mdx/embedded-language-formatting/issue-9260.mdx
new file mode 100644
index 000000000..ceb4d4c79
--- /dev/null
+++ b/tests/mdx/embedded-language-formatting/issue-9260.mdx
@@ -0,0 +1,8 @@
+# title
+
+
+
+CR: Carriage Return, \r
+LF: Line Feed, \n
+
+
diff --git a/tests/mdx/embedded-language-formatting/jsfmt.spec.js b/tests/mdx/embedded-language-formatting/jsfmt.spec.js
new file mode 100644
index 000000000..42d458897
--- /dev/null
+++ b/tests/mdx/embedded-language-formatting/jsfmt.spec.js
@@ -0,0 +1 @@
+run_spec(__dirname, ["mdx"], { embeddedLanguageFormatting: "off" });
diff --git a/tests/misc/embedded_language_formatting/mdx/__snapshots__/jsfmt.spec.js.snap b/tests/misc/embedded_language_formatting/mdx/__snapshots__/jsfmt.spec.js.snap
index baa623719..073da49b6 100644
--- a/tests/misc/embedded_language_formatting/mdx/__snapshots__/jsfmt.spec.js.snap
+++ b/tests/misc/embedded_language_formatting/mdx/__snapshots__/jsfmt.spec.js.snap
@@ -127,14 +127,12 @@ printWidth: 80
Hello, world!
-
---
test test
123
-
---
@@ -144,7 +142,6 @@ printWidth: 80
test test
123
-
---
@@ -154,14 +151,12 @@ printWidth: 80
test test
234
-
---
<>
test test
> 123
-
---
| Column 1 | Column 2 |