fix: split JSON-LD array into separate script tags - fixes @context.toLowerCase error
This commit is contained in:
+35
-30
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user