|
- /**
- * 原 PC 站 SEO 基线。
- *
- * 已上线页面继续沿用旧站的标题分隔符、默认描述与关键词,避免重构后
- * 搜索引擎把同一页面识别成一套全新的内容。新功能页可继续使用自己的 TDK。
- */
- export const LEGACY_SITE_URL = 'https://tool.aionline.cc'
-
- export const LEGACY_DEFAULT_DESCRIPTION = 'AI在线是一个 AI 工具的集合地,可以找到各种各样的 AI 工具,满足你的不同需求。无论你是想翻译一段文字,还是想生成一篇文章,或者是想制作一张图片,AI在线都能为你提供帮助, AI 工具大全宝库!'
-
- export const LEGACY_DEFAULT_KEYWORDS = 'AI,AI在线,AI伙伴,免费AI网站'
-
- /** 原站非首页统一使用「页面标题_AI在线」 */
- export function legacyPageTitle(title) {
- return `${String(title || 'AI在线').trim()}_AI在线`
- }
-
- /**
- * 沿用旧 PC 站的应用 TDK 数据源:后台 app.page_title/description/keywords。
- * 本地开发库未配置旧应用时使用线上旧站当前 TDK 作为兜底。
- */
- export function useLegacyAppSeo({
- appKey,
- fallbackTitle,
- fallbackDescription = LEGACY_DEFAULT_DESCRIPTION,
- fallbackKeywords = LEGACY_DEFAULT_KEYWORDS,
- canonicalPath,
- }) {
- const { post } = useApi()
- const asyncData = useAsyncData(`legacy-app-seo-${appKey}`, () =>
- post('/app/getdetail', { key: appKey }).catch(() => ({ data: {} })))
-
- const appInfo = computed(() => asyncData.data.value?.data || {})
- const title = computed(() =>
- legacyPageTitle(appInfo.value.page_title || fallbackTitle))
- const description = computed(() =>
- appInfo.value.description || fallbackDescription)
- const keywords = computed(() =>
- appInfo.value.keywords || fallbackKeywords)
-
- useSeoMeta({
- title,
- description,
- keywords,
- })
-
- if (canonicalPath) {
- useHead({
- link: [{ rel: 'canonical', href: `${LEGACY_SITE_URL}${canonicalPath}` }],
- })
- }
-
- return asyncData
- }
|