113 lines
3.5 KiB
TypeScript
113 lines
3.5 KiB
TypeScript
import type { Metadata } from 'next'
|
|
import Script from 'next/script'
|
|
import './globals.css'
|
|
import { ThemeProvider } from '@/components/theme-provider'
|
|
import NextAuthSessionProvider from '@/components/providers/session-provider'
|
|
import StructuredData from '@/components/structured-data'
|
|
import { Toaster } from '@/components/ui/sonner'
|
|
|
|
export const metadata: Metadata = {
|
|
title: {
|
|
default: '智能理财计算器 - 专业的投资收益分析工具',
|
|
template: '%s | 智能理财计算器'
|
|
},
|
|
description: '专业的在线理财计算器,支持多币种投资收益计算、年化收益率分析、投资组合管理。帮助您科学规划投资,精准计算理财产品收益,做出明智的投资决策。',
|
|
keywords: ['理财计算器', '投资收益计算', '年化收益率', '理财工具', '投资分析', '收益计算', '理财规划', '投资管理'],
|
|
authors: [{ name: '智能理财计算器团队' }],
|
|
creator: '智能理财计算器',
|
|
publisher: '智能理财计算器',
|
|
formatDetection: {
|
|
email: false,
|
|
address: false,
|
|
telephone: false,
|
|
},
|
|
metadataBase: new URL('https://finance-calculator.frytea.com'),
|
|
alternates: {
|
|
canonical: '/',
|
|
},
|
|
openGraph: {
|
|
type: 'website',
|
|
locale: 'zh_CN',
|
|
url: 'https://finance-calculator.frytea.com',
|
|
title: '智能理财计算器 - 专业的投资收益分析工具',
|
|
description: '专业的在线理财计算器,支持多币种投资收益计算、年化收益率分析、投资组合管理。帮助您科学规划投资,精准计算理财产品收益。',
|
|
siteName: '智能理财计算器',
|
|
images: [
|
|
{
|
|
url: '/og-image.png',
|
|
width: 1200,
|
|
height: 630,
|
|
alt: '智能理财计算器 - 专业的投资收益分析工具',
|
|
},
|
|
],
|
|
},
|
|
twitter: {
|
|
card: 'summary_large_image',
|
|
title: '智能理财计算器 - 专业的投资收益分析工具',
|
|
description: '专业的在线理财计算器,支持多币种投资收益计算、年化收益率分析、投资组合管理。',
|
|
images: ['/og-image.png'],
|
|
},
|
|
robots: {
|
|
index: true,
|
|
follow: true,
|
|
googleBot: {
|
|
index: true,
|
|
follow: true,
|
|
'max-video-preview': -1,
|
|
'max-image-preview': 'large',
|
|
'max-snippet': -1,
|
|
},
|
|
},
|
|
verification: {
|
|
google: 'your-google-verification-code',
|
|
yandex: 'your-yandex-verification-code',
|
|
yahoo: 'your-yahoo-verification-code',
|
|
},
|
|
category: '金融工具',
|
|
}
|
|
|
|
export default function RootLayout({
|
|
children,
|
|
}: Readonly<{
|
|
children: React.ReactNode
|
|
}>) {
|
|
return (
|
|
<html lang="zh-CN">
|
|
<head>
|
|
<StructuredData />
|
|
<Script
|
|
async
|
|
src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-7296634171837358"
|
|
crossOrigin="anonymous"
|
|
strategy="afterInteractive"
|
|
/>
|
|
</head>
|
|
<body>
|
|
<NextAuthSessionProvider>
|
|
<ThemeProvider
|
|
attribute="class"
|
|
defaultTheme="system"
|
|
enableSystem
|
|
disableTransitionOnChange
|
|
>
|
|
{children}
|
|
<Toaster />
|
|
</ThemeProvider>
|
|
</NextAuthSessionProvider>
|
|
|
|
{/* 监控脚本 */}
|
|
<Script
|
|
src="https://rybbit.frytea.com/api/script.js"
|
|
data-site-id="8"
|
|
strategy="afterInteractive"
|
|
/>
|
|
<Script
|
|
src="https://umami.frytea.com/script.js"
|
|
data-website-id="cb16db9a-36bd-4eae-a279-4ff57a89aa19"
|
|
strategy="afterInteractive"
|
|
/>
|
|
</body>
|
|
</html>
|
|
)
|
|
}
|