ProxMenux/web/app/layout.tsx

92 lines
3.4 KiB
TypeScript
Raw Normal View History

2025-02-13 17:28:49 +01:00
import "./globals.css"
2025-02-18 22:58:20 +01:00
import { Inter } from "next/font/google"
2025-02-13 23:04:40 +01:00
import Navbar from "@/components/navbar"
import MouseMoveEffect from "@/components/mouse-move-effect"
2025-02-18 22:58:20 +01:00
import Footer from "@/components/footer"
2025-02-16 11:29:56 +01:00
import type React from "react"
2025-02-13 17:28:49 +01:00
const inter = Inter({ subsets: ["latin"] })
2025-02-18 22:58:20 +01:00
export const metadata = {
title: "ProxMenux",
generator: "Next.js",
applicationName: "ProxMenux",
referrer: "origin-when-cross-origin",
keywords: ["Proxmox VE", "VE", "ProxMenux", "MacRimi", "menu-driven", "menu", "scripts", "virtualization"],
authors: [{ name: "MacRimi" }],
creator: "MacRimi",
publisher: "MacRimi",
description:
"A menu-driven script for Proxmox VE management, designed to simplify and streamline the execution of commands and tasks.",
formatDetection: {
email: false,
address: false,
telephone: false,
},
2025-02-18 23:03:35 +01:00
metadataBase: new URL(`https://macrimi.github.io/ProxMenux/`),
2025-02-18 22:58:20 +01:00
openGraph: {
title: "ProxMenux",
description:
"A menu-driven script for Proxmox VE management, designed to simplify and streamline the execution of commands and tasks.",
2025-02-18 23:53:14 +01:00
url: "https://macrimi.github.io/ProxMenux/",
2025-02-18 22:58:20 +01:00
siteName: "ProxMenux",
images: [
{
2025-02-18 23:53:14 +01:00
url: "https://macrimi.github.io/ProxMenux/main.png",
2025-02-18 22:58:20 +01:00
width: 1363,
height: 735,
2025-02-18 23:53:14 +01:00
alt: "ProxMenux",
2025-02-18 22:58:20 +01:00
},
],
locale: "en_US",
type: "website",
},
twitter: {
card: "summary_large_image",
title: "ProxMenux",
description:
"A menu-driven script for Proxmox VE management, designed to simplify and streamline the execution of commands and tasks.",
2025-02-18 23:53:14 +01:00
images: ["https://macrimi.github.io/ProxMenux/main.png"],
2025-02-18 22:58:20 +01:00
},
icons: {
icon: [
2025-02-18 23:53:14 +01:00
{ url: "https://macrimi.github.io/ProxMenux/favicon.ico", sizes: "any" },
{ url: "https://macrimi.github.io/ProxMenux/icon.svg", type: "image/svg+xml" },
2025-02-18 22:58:20 +01:00
],
2025-02-18 23:53:14 +01:00
apple: [{ url: "https://macrimi.github.io/ProxMenux/apple-touch-icon.png", sizes: "180x180" } as const],
2025-02-18 22:58:20 +01:00
},
}
export default function RootLayout({ children }: { children: React.ReactNode }) {
2025-02-13 17:28:49 +01:00
return (
<html lang="en" className="dark">
2025-02-18 22:58:20 +01:00
<head>
2025-02-18 23:53:14 +01:00
<meta name="description" content={metadata.description} />
<meta property="og:title" content={metadata.openGraph?.title} />
<meta property="og:description" content={metadata.openGraph?.description} />
<meta property="og:image" content={metadata.openGraph?.images?.[0]?.url} />
<meta property="og:url" content={metadata.openGraph?.url} />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content={metadata.twitter?.title} />
<meta name="twitter:description" content={metadata.twitter?.description} />
<meta name="twitter:image" content={metadata.twitter?.images?.[0]} />
2025-02-18 22:58:20 +01:00
<link rel="canonical" href={metadata.metadataBase.href} />
2025-02-18 23:53:14 +01:00
{/* Favicon y Apple Icons */}
2025-02-18 22:58:20 +01:00
{metadata.icons.icon.map((icon, index) => (
<link key={index} rel="icon" type={icon.type} sizes={icon.sizes} href={icon.url} />
))}
{metadata.icons.apple.map((icon, index) => (
<link key={index} rel="apple-touch-icon" sizes={icon.sizes} href={icon.url} />
))}
</head>
2025-02-13 17:28:49 +01:00
<body className={`${inter.className} bg-background text-foreground antialiased`}>
2025-02-13 23:04:40 +01:00
<Navbar />
<MouseMoveEffect />
2025-02-17 22:25:11 +01:00
<div className="pt-16 md:pt-16">{children}</div>
2025-02-18 22:58:20 +01:00
<Footer />
2025-02-13 17:28:49 +01:00
</body>
</html>
)
2025-02-18 22:58:20 +01:00
}