42 lines
1.2 KiB
TypeScript
42 lines
1.2 KiB
TypeScript
import type { Metadata } from "next";
|
|
import { Geist, Geist_Mono } from "next/font/google";
|
|
import "./globals.css";
|
|
|
|
const geistSans = Geist({
|
|
variable: "--font-geist-sans",
|
|
subsets: ["latin"],
|
|
});
|
|
|
|
const geistMono = Geist_Mono({
|
|
variable: "--font-geist-mono",
|
|
subsets: ["latin"],
|
|
});
|
|
|
|
export const metadata: Metadata = {
|
|
title: "日志分析面板",
|
|
description: "基于 Next.js 的访问日志分析面板",
|
|
};
|
|
|
|
export default function RootLayout({
|
|
children,
|
|
}: Readonly<{
|
|
children: React.ReactNode;
|
|
}>) {
|
|
return (
|
|
<html lang="en">
|
|
<body className={`${geistSans.variable} ${geistMono.variable} antialiased`}>
|
|
<header className="border-b bg-white/60 dark:bg-white/5">
|
|
<div className="max-w-7xl mx-auto px-4 py-3 flex items-center justify-between">
|
|
<a href="/" className="font-medium">日志分析面板</a>
|
|
<nav className="text-sm text-gray-600 flex gap-4">
|
|
<a className="hover:underline" href="/sites">Sites</a>
|
|
<a className="hover:underline" href="https://nextjs.org" target="_blank" rel="noreferrer">Docs</a>
|
|
</nav>
|
|
</div>
|
|
</header>
|
|
<main className="px-4">{children}</main>
|
|
</body>
|
|
</html>
|
|
);
|
|
}
|