Merge pull request #26 from eehkay/fix/json-ld-scripts

fix: emit one JSON-LD script per schema object
This commit is contained in:
Yusuf İpek
2026-07-25 11:28:40 +03:00
committed by GitHub
2 changed files with 22 additions and 7 deletions
+11 -3
View File
@@ -44,11 +44,19 @@ export default async function MarketingSlugPage({ params }: MarketingSlugPagePro
path: `/${page.slug}`,
faq: page.faq,
});
const safeStructuredData = JSON.stringify(structuredData).replace(/</g, '\\u003c');
return (
<>
<script type="application/ld+json" dangerouslySetInnerHTML={{ __html: safeStructuredData }} />
{/* One script per object: single-object payloads with a top-level
@context survive naive JSON-LD consumers that choke on arrays. */}
{structuredData.map((data, index) => (
<script
key={`${String(data['@type'])}-${index}`}
type="application/ld+json"
dangerouslySetInnerHTML={{
__html: JSON.stringify(data).replace(/</g, '\\u003c'),
}}
/>
))}
<ComparisonPage page={page} isLoggedIn={Boolean(session?.user)} />
</>
);
+11 -4
View File
@@ -120,10 +120,17 @@ export default function RootLayout({
suppressHydrationWarning
>
<body className="antialiased min-h-screen bg-background font-sans">
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(structuredData) }}
/>
{/* One script per object: single-object payloads with a top-level
@context survive naive JSON-LD consumers that choke on arrays. */}
{structuredData.map((data) => (
<script
key={String(data['@type'])}
type="application/ld+json"
dangerouslySetInnerHTML={{
__html: JSON.stringify(data).replace(/</g, '\\u003c'),
}}
/>
))}
<ThemeProvider attribute="class" defaultTheme="dark" enableSystem disableTransitionOnChange>
<svg aria-hidden="true" className="fixed h-0 w-0">
<filter id="openframe-noise">