diff --git a/src/app/layout.tsx b/src/app/layout.tsx index f6142c2..ee1e983 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -4,7 +4,10 @@ import { SiteFooter } from "@/components/layout/site-footer"; import { SiteHeader } from "@/components/layout/site-header"; export const metadata: Metadata = { - title: "Kivotos Railway", + title: { + default: "基沃托斯铁道公团 KivotosRailway", + template: "%s | 基沃托斯铁道公团 KivotosRailway", + }, description: "Kivotos Railway website", icons: { icon: "/icon/icon.svg", diff --git a/src/app/news/[slug]/page.tsx b/src/app/news/[slug]/page.tsx index e1970cf..e004968 100644 --- a/src/app/news/[slug]/page.tsx +++ b/src/app/news/[slug]/page.tsx @@ -1,8 +1,22 @@ +import type { Metadata } from "next"; import Link from "next/link"; import { getNewsBySlug, markdownToHtml } from "@/data/news"; import { PageBreadcrumb } from "@/components/layout/page-breadcrumb"; import { NewsShare } from "@/components/news/news-share"; +export async function generateMetadata({ + params, +}: { + params: Promise<{ slug: string }>; +}): Promise { + const { slug } = await params; + const item = await getNewsBySlug(slug); + + return { + title: item?.title ?? "新闻", + }; +} + export default async function NewsDetailPage({ params, }: { diff --git a/src/app/news/page.tsx b/src/app/news/page.tsx index f2789c7..cc7fbaf 100644 --- a/src/app/news/page.tsx +++ b/src/app/news/page.tsx @@ -1,8 +1,12 @@ -import Link from "next/link"; +import type { Metadata } from "next"; import { getNewsList } from "@/data/news"; import { PageBreadcrumb } from "@/components/layout/page-breadcrumb"; import { NewsList } from "@/components/news/news-list"; +export const metadata: Metadata = { + title: "新闻", +}; + export default async function NewsPage() { const news = await getNewsList(); diff --git a/src/components/layout/page-breadcrumb.tsx b/src/components/layout/page-breadcrumb.tsx index fc2948b..d7d5786 100644 --- a/src/components/layout/page-breadcrumb.tsx +++ b/src/components/layout/page-breadcrumb.tsx @@ -1,8 +1,9 @@ import Link from "next/link"; +import { getLocaleMessages } from "@/lib/i18n"; export function PageBreadcrumb({ items }: { items: Array<{ label: string; href?: string }> }) { return ( -