后台站点设计UIUX优化

This commit is contained in:
2026-09-19 04:14:13 +08:00
parent a8efb9ecef
commit 2b3d122e56
24 changed files with 2952 additions and 306 deletions

View File

@@ -2,6 +2,7 @@ import type { Metadata } from "next";
import { cookies, headers } from "next/headers";
import { Plus_Jakarta_Sans, Noto_Sans_SC, JetBrains_Mono } from "next/font/google";
import "./globals.css";
import SiteBrandProvider from "@/components/SiteBrandProvider";
import SiteChrome from "@/components/SiteChrome";
import Toaster from "@/components/Toaster";
import TipHost from "@/components/TipHost";
@@ -19,6 +20,7 @@ import { getMeCached, getPublicSettingsCached } from "@/lib/serverData";
import { TOKEN_COOKIE, authCookieHeader } from "@/lib/cookies";
import { accentStyleCSS } from "@/lib/theme";
import { bgConfigFromSettings, bgStyleCSS } from "@/lib/bg";
import { siteDocumentTitle } from "@/lib/brand";
import { motionConfigFromSettings } from "@/lib/motion";
// 构建期下载并自托管字体:同源加载 + 自动 preload + fallback 度量校正,
@@ -47,15 +49,21 @@ const jetbrainsMono = JetBrains_Mono({
export async function generateMetadata(): Promise<Metadata> {
const settings = await getPublicSettingsCached();
const name = settings.site_name || "姜十三论坛";
const title = siteDocumentTitle(name, settings.site_slogan || "");
const desc = settings.site_description || "姜十三论坛 - 技术分享与讨论社区";
const keywords = settings.site_keywords?.length ? settings.site_keywords : undefined;
return {
title: {
default: `${name} · J13 FORUM`,
default: title,
template: `%s · ${name}`,
},
description: desc,
keywords,
...(settings.favicon_url
? { icons: { icon: settings.favicon_url } }
: {}),
openGraph: {
title: `${name} · J13 FORUM`,
title,
description: desc,
type: "website",
},
@@ -133,6 +141,7 @@ export default async function RootLayout({
<a href="#main" className="skip-link">
跳到主要内容
</a>
<SiteBrandProvider initial={settings}>
<MotionProvider initial={motionCfg}>
<CommentsPolicyProvider allowComments={settings.allow_comments !== false}>
<MessagesPolicyProvider allowMessages={settings.allow_messages !== false}>
@@ -147,7 +156,6 @@ export default async function RootLayout({
unread={unread}
chatUnread={settings.allow_messages !== false ? chatUnread : 0}
theme={theme}
siteName={settings.site_name}
allowRegister={settings.allow_register}
>
{children}
@@ -157,6 +165,7 @@ export default async function RootLayout({
</MessagesPolicyProvider>
</CommentsPolicyProvider>
</MotionProvider>
</SiteBrandProvider>
<Toaster />
<TipHost />
<AccountGuard />