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`}
|
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>
|
<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
|
<script
|
||||||
type="application/ld+json"
|
type="application/ld+json"
|
||||||
suppressHydrationWarning
|
suppressHydrationWarning
|
||||||
dangerouslySetInnerHTML={{
|
dangerouslySetInnerHTML={{
|
||||||
__html: JSON.stringify([
|
__html: JSON.stringify({
|
||||||
{
|
'@context': 'https://schema.org',
|
||||||
'@context': 'https://schema.org',
|
'@type': 'Organization',
|
||||||
'@type': 'Organization',
|
name: 'ayris.tech',
|
||||||
name: 'ayris.tech',
|
url: BASE_URL,
|
||||||
url: BASE_URL,
|
logo: `${BASE_URL}/logo.jpeg`,
|
||||||
logo: `${BASE_URL}/logo.jpeg`,
|
sameAs: [
|
||||||
sameAs: [
|
'https://www.youtube.com/@ayristech',
|
||||||
'https://www.youtube.com/@ayristech',
|
'https://github.com/ayrisdev',
|
||||||
'https://github.com/ayrisdev',
|
'https://git.ayris.tech/ayrisdev',
|
||||||
'https://git.ayris.tech/ayrisdev',
|
],
|
||||||
],
|
description:
|
||||||
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.',
|
||||||
'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
|
<Script
|
||||||
|
|||||||
Reference in New Issue
Block a user