anatolian2/app/layout.tsx
Temmuz Aslan 591d878ac6 Initial commit: The Anatolian Edit website
Next.js 14 website with standalone output configured for Docker deployment.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 22:34:25 +03:00

78 lines
2.4 KiB
TypeScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import type { Metadata } from "next";
import { Syne, Plus_Jakarta_Sans } from "next/font/google";
import "./globals.css";
import { Header } from "@/components/layout/Header";
import { Footer } from "@/components/layout/Footer";
import { WhatsAppButton } from "@/components/shared/WhatsAppButton";
import { CookieConsent } from "@/components/shared/CookieConsent";
import { generateOrganizationSchema, generateLocalBusinessSchema } from "@/lib/structured-data";
const syne = Syne({
subsets: ["latin"],
variable: "--font-syne",
display: "swap",
});
const jakarta = Plus_Jakarta_Sans({
subsets: ["latin"],
variable: "--font-jakarta",
display: "swap",
});
export const metadata: Metadata = {
title: "The Anatolian Edit | Istanbul's Asian Side, Curated for You",
description:
"Curated experiences on Istanbul's Asian side. Small-group tours through Kadıköy, Moda, Bağdat Caddesi and the coastline that 90% of visitors never see.",
metadataBase: new URL("https://theanatolianedit.com"),
openGraph: {
title: "The Anatolian Edit | Istanbul's Asian Side, Curated for You",
description:
"Curated experiences on Istanbul's Asian side. Small-group tours through Kadıköy, Moda, Bağdat Caddesi and the coastline that 90% of visitors never see.",
url: "https://theanatolianedit.com",
siteName: "The Anatolian Edit",
locale: "en_US",
type: "website",
},
twitter: {
card: "summary_large_image",
title: "The Anatolian Edit",
description:
"Curated experiences on Istanbul's Asian side.",
},
robots: {
index: true,
follow: true,
},
};
export default function RootLayout({
children,
}: Readonly<{
children: React.ReactNode;
}>) {
return (
<html lang="en" className={`${syne.variable} ${jakarta.variable}`}>
<head>
<script
type="application/ld+json"
dangerouslySetInnerHTML={{
__html: JSON.stringify(generateOrganizationSchema()),
}}
/>
<script
type="application/ld+json"
dangerouslySetInnerHTML={{
__html: JSON.stringify(generateLocalBusinessSchema()),
}}
/>
</head>
<body className="font-body text-deep-nazar bg-aegean-white antialiased">
<Header />
<main>{children}</main>
<Footer />
<WhatsAppButton />
<CookieConsent />
</body>
</html>
);
}