fix: split JSON-LD array into separate script tags - fixes @context.toLowerCase error

This commit is contained in:
AyrisAI
2026-07-25 17:56:16 +03:00
parent b1fd19d2fd
commit feacc27157
+35 -30
View File
@@ -90,41 +90,46 @@ export default async function RootLayout({
className={`${jakartaSans.variable} ${jetbrainsMono.variable} dark h-full antialiased`}
>
<body className="min-h-full flex flex-col bg-slate-950 text-slate-100 font-sans selection:bg-red-500 selection:text-white tracking-normal leading-relaxed" suppressHydrationWarning>
{/* Organization + WebSite JSON-LD — global entity recognition */}
{/* Organization JSON-LD */}
<script
type="application/ld+json"
suppressHydrationWarning
dangerouslySetInnerHTML={{
__html: JSON.stringify([
{
'@context': 'https://schema.org',
'@type': 'Organization',
name: 'ayris.tech',
url: BASE_URL,
logo: `${BASE_URL}/logo.jpeg`,
sameAs: [
'https://www.youtube.com/@ayristech',
'https://github.com/ayrisdev',
'https://git.ayris.tech/ayrisdev',
],
description:
'ayris.tech is a YouTube channel and resource portal publishing tutorials on Next.js, React, TypeScript, Python, AI agents, Docker, and modern full-stack development.',
__html: JSON.stringify({
'@context': 'https://schema.org',
'@type': 'Organization',
name: 'ayris.tech',
url: BASE_URL,
logo: `${BASE_URL}/logo.jpeg`,
sameAs: [
'https://www.youtube.com/@ayristech',
'https://github.com/ayrisdev',
'https://git.ayris.tech/ayrisdev',
],
description:
'ayris.tech is a YouTube channel and resource portal publishing tutorials on Next.js, React, TypeScript, Python, AI agents, Docker, and modern full-stack development.',
}),
}}
/>
{/* WebSite JSON-LD */}
<script
type="application/ld+json"
suppressHydrationWarning
dangerouslySetInnerHTML={{
__html: JSON.stringify({
'@context': 'https://schema.org',
'@type': 'WebSite',
name: 'ayris.tech YouTube Portal',
url: BASE_URL,
description:
'Source code, lesson notes, cheatsheets, AI prompts, and project downloads for every ayris.tech YouTube tutorial.',
publisher: { '@type': 'Organization', name: 'ayris.tech', url: BASE_URL },
potentialAction: {
'@type': 'SearchAction',
target: { '@type': 'EntryPoint', urlTemplate: `${BASE_URL}/en/lessons?q={search_term_string}` },
'query-input': 'required name=search_term_string',
},
{
'@context': 'https://schema.org',
'@type': 'WebSite',
name: 'ayris.tech YouTube Portal',
url: BASE_URL,
description:
'Source code, lesson notes, cheatsheets, AI prompts, and project downloads for every ayris.tech YouTube tutorial.',
publisher: { '@type': 'Organization', name: 'ayris.tech', url: BASE_URL },
potentialAction: {
'@type': 'SearchAction',
target: { '@type': 'EntryPoint', urlTemplate: `${BASE_URL}/en/lessons?q={search_term_string}` },
'query-input': 'required name=search_term_string',
},
},
]),
}),
}}
/>
<Script