2024-04-05 13:12:55 +08:00
|
|
|
import type { Metadata } from "next";
|
|
|
|
import { Inter } from "next/font/google";
|
|
|
|
import "./globals.css";
|
2024-04-06 04:24:58 +08:00
|
|
|
import SignoutButton from "@/components/signout-button";
|
|
|
|
import Logo from "@/components/logo";
|
|
|
|
import BackButton from "@/components/back-button";
|
|
|
|
import Link from "next/link";
|
2024-04-06 17:11:27 +08:00
|
|
|
import { AdminButton } from "@/components/admin-button";
|
2024-04-05 13:12:55 +08:00
|
|
|
|
|
|
|
const inter = Inter({ subsets: ["latin"] });
|
|
|
|
|
|
|
|
export const metadata: Metadata = {
|
2024-04-06 02:01:19 +08:00
|
|
|
title: "音乐弹幕",
|
|
|
|
description: "搜索歌曲,选择直播间,智能发送弹幕",
|
2024-04-05 13:12:55 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
export default function RootLayout({
|
|
|
|
children,
|
|
|
|
}: Readonly<{
|
|
|
|
children: React.ReactNode;
|
|
|
|
}>) {
|
|
|
|
return (
|
2024-04-05 17:00:16 +08:00
|
|
|
<html lang="zh_CN" data-theme="light">
|
2024-04-06 01:08:52 +08:00
|
|
|
<body className={inter.className}>
|
|
|
|
<header className="text-gray-600 body-font">
|
|
|
|
<div className="container mx-auto flex flex-wrap p-5 flex-col md:flex-row items-center">
|
|
|
|
<a
|
|
|
|
href="#"
|
|
|
|
className="flex title-font font-medium items-center text-gray-900 mb-4 md:mb-0"
|
|
|
|
>
|
2024-04-06 01:43:25 +08:00
|
|
|
<Logo />
|
2024-04-06 01:08:52 +08:00
|
|
|
<span className="ml-3 text-xl">音乐弹幕</span>
|
|
|
|
</a>
|
|
|
|
<nav className="md:ml-auto md:mr-auto flex flex-wrap items-center text-base justify-center">
|
2024-04-06 04:24:58 +08:00
|
|
|
<Link href="/" className="mr-5 hover:text-gray-900">
|
|
|
|
首页
|
|
|
|
</Link>
|
|
|
|
<Link href="/songs" className="mr-5 hover:text-gray-900">
|
2024-04-06 01:43:25 +08:00
|
|
|
歌词曲库
|
2024-04-06 04:24:58 +08:00
|
|
|
</Link>
|
|
|
|
<Link href="/live" className="mr-5 hover:text-gray-900">
|
2024-04-06 01:43:25 +08:00
|
|
|
直播间列表
|
2024-04-06 04:24:58 +08:00
|
|
|
</Link>
|
|
|
|
<Link href="/danmu" className="mr-5 hover:text-gray-900">
|
2024-04-06 01:43:25 +08:00
|
|
|
弹幕 AI
|
2024-04-06 04:24:58 +08:00
|
|
|
</Link>
|
|
|
|
<Link href="/about" className="mr-5 hover:text-gray-900">
|
2024-04-06 01:43:25 +08:00
|
|
|
关于
|
2024-04-06 04:24:58 +08:00
|
|
|
</Link>
|
2024-04-06 01:08:52 +08:00
|
|
|
</nav>
|
2024-04-06 02:35:31 +08:00
|
|
|
<div className="join">
|
|
|
|
<BackButton className="btn join-item" />
|
2024-04-06 17:11:27 +08:00
|
|
|
<AdminButton className="btn join-item" />
|
2024-04-06 02:35:31 +08:00
|
|
|
<SignoutButton className="btn join-item" />
|
|
|
|
</div>
|
2024-04-06 01:08:52 +08:00
|
|
|
</div>
|
|
|
|
</header>
|
2024-04-06 04:24:58 +08:00
|
|
|
<main className="min-h-[40vh]">{children}</main>
|
2024-04-06 01:08:52 +08:00
|
|
|
<footer className="text-gray-600 body-font">
|
|
|
|
<div className="container px-5 py-24 mx-auto flex md:items-center lg:items-start md:flex-row md:flex-nowrap flex-wrap flex-col">
|
|
|
|
<div className="w-64 flex-shrink-0 md:mx-0 mx-auto text-center md:text-left">
|
|
|
|
<a
|
|
|
|
href="#"
|
|
|
|
className="flex title-font font-medium items-center md:justify-start justify-center text-gray-900"
|
|
|
|
>
|
2024-04-06 01:43:25 +08:00
|
|
|
<Logo />
|
|
|
|
<span className="ml-3 text-xl">音乐弹幕</span>
|
2024-04-06 01:08:52 +08:00
|
|
|
</a>
|
2024-04-06 02:35:31 +08:00
|
|
|
<p className="mt-2 text-sm text-gray-500">歌曲歌词到直播间</p>
|
2024-04-06 01:08:52 +08:00
|
|
|
</div>
|
|
|
|
<div className="flex-grow flex flex-wrap md:pl-20 -mb-10 md:mt-0 mt-10 md:text-left text-center">
|
|
|
|
<div className="lg:w-1/4 md:w-1/2 w-full px-4">
|
|
|
|
<h2 className="title-font font-medium text-gray-900 tracking-widest text-sm mb-3">
|
2024-04-06 01:43:25 +08:00
|
|
|
歌词曲库
|
2024-04-06 01:08:52 +08:00
|
|
|
</h2>
|
|
|
|
<nav className="list-none mb-10">
|
|
|
|
<li>
|
|
|
|
<a href="#" className="text-gray-600 hover:text-gray-800">
|
2024-04-06 01:43:25 +08:00
|
|
|
流行音乐
|
2024-04-06 01:08:52 +08:00
|
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="#" className="text-gray-600 hover:text-gray-800">
|
2024-04-06 01:43:25 +08:00
|
|
|
古典音乐
|
2024-04-06 01:08:52 +08:00
|
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="#" className="text-gray-600 hover:text-gray-800">
|
2024-04-06 01:43:25 +08:00
|
|
|
民间音乐
|
2024-04-06 01:08:52 +08:00
|
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="#" className="text-gray-600 hover:text-gray-800">
|
2024-04-06 01:43:25 +08:00
|
|
|
爵士乐
|
2024-04-06 01:08:52 +08:00
|
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</nav>
|
|
|
|
</div>
|
|
|
|
<div className="lg:w-1/4 md:w-1/2 w-full px-4">
|
|
|
|
<h2 className="title-font font-medium text-gray-900 tracking-widest text-sm mb-3">
|
2024-04-06 01:43:25 +08:00
|
|
|
直播间列表
|
2024-04-06 01:08:52 +08:00
|
|
|
</h2>
|
|
|
|
<nav className="list-none mb-10">
|
|
|
|
<li>
|
|
|
|
<a href="#" className="text-gray-600 hover:text-gray-800">
|
2024-04-06 01:43:25 +08:00
|
|
|
热门直播
|
2024-04-06 01:08:52 +08:00
|
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="#" className="text-gray-600 hover:text-gray-800">
|
2024-04-06 01:43:25 +08:00
|
|
|
音乐直播
|
2024-04-06 01:08:52 +08:00
|
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="#" className="text-gray-600 hover:text-gray-800">
|
2024-04-06 01:43:25 +08:00
|
|
|
颜值直播
|
2024-04-06 01:08:52 +08:00
|
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="#" className="text-gray-600 hover:text-gray-800">
|
2024-04-06 01:43:25 +08:00
|
|
|
舞见直播
|
2024-04-06 01:08:52 +08:00
|
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</nav>
|
|
|
|
</div>
|
|
|
|
<div className="lg:w-1/4 md:w-1/2 w-full px-4">
|
|
|
|
<h2 className="title-font font-medium text-gray-900 tracking-widest text-sm mb-3">
|
2024-04-06 01:43:25 +08:00
|
|
|
弹幕 AI
|
2024-04-06 01:08:52 +08:00
|
|
|
</h2>
|
|
|
|
<nav className="list-none mb-10">
|
|
|
|
<li>
|
|
|
|
<a href="#" className="text-gray-600 hover:text-gray-800">
|
2024-04-06 01:43:25 +08:00
|
|
|
音乐同步
|
2024-04-06 01:08:52 +08:00
|
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="#" className="text-gray-600 hover:text-gray-800">
|
2024-04-06 01:43:25 +08:00
|
|
|
智能回复
|
2024-04-06 01:08:52 +08:00
|
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="#" className="text-gray-600 hover:text-gray-800">
|
2024-04-06 01:43:25 +08:00
|
|
|
烘托气氛
|
2024-04-06 01:08:52 +08:00
|
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="#" className="text-gray-600 hover:text-gray-800">
|
2024-04-06 01:43:25 +08:00
|
|
|
猜谜抽奖
|
2024-04-06 01:08:52 +08:00
|
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</nav>
|
|
|
|
</div>
|
|
|
|
<div className="lg:w-1/4 md:w-1/2 w-full px-4">
|
|
|
|
<h2 className="title-font font-medium text-gray-900 tracking-widest text-sm mb-3">
|
2024-04-06 01:43:25 +08:00
|
|
|
关于
|
2024-04-06 01:08:52 +08:00
|
|
|
</h2>
|
|
|
|
<nav className="list-none mb-10">
|
|
|
|
<li>
|
|
|
|
<a href="#" className="text-gray-600 hover:text-gray-800">
|
2024-04-06 01:43:25 +08:00
|
|
|
如何接入
|
2024-04-06 01:08:52 +08:00
|
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="#" className="text-gray-600 hover:text-gray-800">
|
2024-04-06 01:43:25 +08:00
|
|
|
联系我们
|
2024-04-06 01:08:52 +08:00
|
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="#" className="text-gray-600 hover:text-gray-800">
|
2024-04-06 01:43:25 +08:00
|
|
|
发展故事
|
2024-04-06 01:08:52 +08:00
|
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</nav>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div className="bg-gray-100">
|
|
|
|
<div className="container mx-auto py-4 px-5 flex flex-wrap flex-col sm:flex-row">
|
|
|
|
<p className="text-gray-500 text-sm text-center sm:text-left">
|
|
|
|
© 2024 音乐弹幕 —
|
|
|
|
<a
|
|
|
|
href="https://github.com/sealday"
|
|
|
|
rel="noopener noreferrer"
|
|
|
|
className="text-gray-600 ml-1"
|
|
|
|
target="_blank"
|
|
|
|
>
|
|
|
|
@sealday
|
|
|
|
</a>
|
|
|
|
</p>
|
|
|
|
<span className="inline-flex sm:ml-auto sm:mt-0 mt-2 justify-center sm:justify-start">
|
|
|
|
<a href="#" className="text-gray-500">
|
|
|
|
<svg
|
|
|
|
fill="currentColor"
|
2024-04-06 01:57:28 +08:00
|
|
|
strokeLinecap="round"
|
|
|
|
strokeLinejoin="round"
|
|
|
|
strokeWidth="2"
|
2024-04-06 01:08:52 +08:00
|
|
|
className="w-5 h-5"
|
|
|
|
viewBox="0 0 24 24"
|
|
|
|
>
|
|
|
|
<path d="M18 2h-3a5 5 0 00-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 011-1h3z"></path>
|
|
|
|
</svg>
|
|
|
|
</a>
|
|
|
|
<a href="#" className="ml-3 text-gray-500">
|
|
|
|
<svg
|
|
|
|
fill="currentColor"
|
2024-04-06 01:57:28 +08:00
|
|
|
strokeLinecap="round"
|
|
|
|
strokeLinejoin="round"
|
|
|
|
strokeWidth="2"
|
2024-04-06 01:08:52 +08:00
|
|
|
className="w-5 h-5"
|
|
|
|
viewBox="0 0 24 24"
|
|
|
|
>
|
|
|
|
<path d="M23 3a10.9 10.9 0 01-3.14 1.53 4.48 4.48 0 00-7.86 3v1A10.66 10.66 0 013 4s-4 9 5 13a11.64 11.64 0 01-7 2c9 5 20 0 20-11.5a4.5 4.5 0 00-.08-.83A7.72 7.72 0 0023 3z"></path>
|
|
|
|
</svg>
|
|
|
|
</a>
|
|
|
|
<a href="#" className="ml-3 text-gray-500">
|
|
|
|
<svg
|
|
|
|
fill="none"
|
|
|
|
stroke="currentColor"
|
2024-04-06 01:57:28 +08:00
|
|
|
strokeLinecap="round"
|
|
|
|
strokeLinejoin="round"
|
|
|
|
strokeWidth="2"
|
2024-04-06 01:08:52 +08:00
|
|
|
className="w-5 h-5"
|
|
|
|
viewBox="0 0 24 24"
|
|
|
|
>
|
|
|
|
<rect
|
|
|
|
width="20"
|
|
|
|
height="20"
|
|
|
|
x="2"
|
|
|
|
y="2"
|
|
|
|
rx="5"
|
|
|
|
ry="5"
|
|
|
|
></rect>
|
|
|
|
<path d="M16 11.37A4 4 0 1112.63 8 4 4 0 0116 11.37zm1.5-4.87h.01"></path>
|
|
|
|
</svg>
|
|
|
|
</a>
|
|
|
|
<a href="#" className="ml-3 text-gray-500">
|
|
|
|
<svg
|
|
|
|
fill="currentColor"
|
|
|
|
stroke="currentColor"
|
2024-04-06 01:57:28 +08:00
|
|
|
strokeLinecap="round"
|
|
|
|
strokeLinejoin="round"
|
|
|
|
strokeWidth="0"
|
2024-04-06 01:08:52 +08:00
|
|
|
className="w-5 h-5"
|
|
|
|
viewBox="0 0 24 24"
|
|
|
|
>
|
|
|
|
<path
|
|
|
|
stroke="none"
|
|
|
|
d="M16 8a6 6 0 016 6v7h-4v-7a2 2 0 00-2-2 2 2 0 00-2 2v7h-4v-7a6 6 0 016-6zM2 9h4v12H2z"
|
|
|
|
></path>
|
|
|
|
<circle cx="4" cy="4" r="2" stroke="none"></circle>
|
|
|
|
</svg>
|
|
|
|
</a>
|
|
|
|
</span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</footer>
|
|
|
|
</body>
|
2024-04-05 13:12:55 +08:00
|
|
|
</html>
|
|
|
|
);
|
|
|
|
}
|