summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.changeset/strong-cars-wash.md5
-rw-r--r--packages/astro/src/core/render/core.ts7
2 files changed, 11 insertions, 1 deletions
diff --git a/.changeset/strong-cars-wash.md b/.changeset/strong-cars-wash.md
new file mode 100644
index 000000000..6dc8926d7
--- /dev/null
+++ b/.changeset/strong-cars-wash.md
@@ -0,0 +1,5 @@
+---
+'astro': patch
+---
+
+Fix issue when using Fragment inside MDX
diff --git a/packages/astro/src/core/render/core.ts b/packages/astro/src/core/render/core.ts
index 231088fa7..6c47d0a18 100644
--- a/packages/astro/src/core/render/core.ts
+++ b/packages/astro/src/core/render/core.ts
@@ -10,7 +10,7 @@ import type {
} from '../../@types/astro';
import type { LogOptions } from '../logger/core.js';
-import { renderPage } from '../../runtime/server/index.js';
+import { renderPage, Fragment } from '../../runtime/server/index.js';
import { getParams } from '../routing/params.js';
import { createResult } from './result.js';
import { callGetStaticPaths, findPathItemByKey, RouteCache } from './route-cache.js';
@@ -157,6 +157,11 @@ export async function render(opts: RenderOptions): Promise<Response> {
if (typeof (mod as any).components === 'object') {
Object.assign(pageProps, { components: (mod as any).components });
}
+
+ // HACK: expose `Fragment` for all MDX components
+ if (typeof mod.default === 'function' && mod.default.name.startsWith('MDX')) {
+ Object.assign(pageProps, { components: Object.assign((pageProps?.components as any) ?? {}, { Fragment }) });
+ }
return await renderPage(result, Component, pageProps, null, streaming);
}