Files
blog/app/layout.tsx
Gabriel Kaszewski c8536502bc
All checks were successful
Build and Deploy Blog / build-and-deploy-local (push) Successful in 1m13s
Add RSS feed functionality and icon to the blog
2025-09-15 08:27:57 +02:00

73 lines
1.8 KiB
TypeScript

import type { Metadata } from "next";
import "./globals.css";
import localFont from "next/font/local";
import SwitchingBackground from "@/components/switching-background";
import CursorEffect from "@/components/cursor-effect";
const frutiger = localFont({
src: [
{
path: "./frutiger.woff",
weight: "normal",
style: "normal",
},
{
path: "./frutiger-bold.woff",
weight: "bold",
style: "normal",
},
],
variable: "--font-frutiger",
});
export const metadata: Metadata = {
metadataBase: new URL("https://blog.gabrielkaszewski.dev"),
title: {
default: "Gabriel Kaszewski's Blog",
template: `%s | Gabriel's Kaszewski Blog`,
},
description:
"A personal blog by Gabriel Kaszewski about technology, programming, and game development.",
openGraph: {
title: "Gabriel Kaszewski's Blog",
description:
"A personal blog about technology, programming, and game development.",
url: "https://blog.gabrielkaszewski.dev",
siteName: "Gabriel Kaszewski's Blog",
locale: "en_US",
type: "website",
images: [
{
url: "/default-og-image.avif",
width: 1200,
height: 630,
alt: "Gabriel Kaszewski's Blog",
},
],
},
other: {
"msapplication-TileColor": "#da532c",
"theme-color": "#ffffff",
"Content-Type": "application/rss+xml",
rel: "alternate",
title: "Gabriel Kaszewski's Blog RSS Feed",
url: "/feed.xml",
},
};
export default function RootLayout({
children,
}: Readonly<{
children: React.ReactNode;
}>) {
return (
<html lang="en">
<body className={`${frutiger.className} antialiased`}>
<SwitchingBackground />
<CursorEffect />
<main className="container mx-auto px-4 py-8 md:py-12">{children}</main>
</body>
</html>
);
}