diff --git a/components/MDXContent.tsx b/components/MDXContent.tsx index 8d45b2ba..071a3532 100644 --- a/components/MDXContent.tsx +++ b/components/MDXContent.tsx @@ -40,9 +40,19 @@ function HeroSection(props: any) { } async function Block(props: any) { - const { type, data, children } = props; + const { type, children } = props; + let { data } = props; const locale = await getLocale(); + // If data was passed as a JSON string (via our lib/blog.ts fix), parse it back + if (typeof data === 'string') { + try { + data = JSON.parse(data); + } catch (e) { + console.error('Failed to parse MDX block data:', e); + } + } + // Normalize type (Payload sometimes uses blockType in data) const blockType = type || data?.blockType; diff --git a/lib/blog.ts b/lib/blog.ts index ac4022a5..c0b3b245 100644 --- a/lib/blog.ts +++ b/lib/blog.ts @@ -62,7 +62,13 @@ export async function getPostBySlug(slug: string, locale: string): Promise { + return 'data="{' + p1.replace(/"/g, '"') + '}"'; + }); + + let parsedContent = fixedContent; try { if (content.trim().startsWith('{')) { parsedContent = JSON.parse(content); diff --git a/package.json b/package.json index 348ccccf..a9fde4da 100644 --- a/package.json +++ b/package.json @@ -113,7 +113,7 @@ "prepare": "husky", "preinstall": "npx only-allow pnpm" }, - "version": "2.3.22-rc.21", + "version": "2.3.22-rc.22", "pnpm": { "onlyBuiltDependencies": [ "@parcel/watcher",