From c2d17ffae45e7034546f85a4fb0d79e5cc431310 Mon Sep 17 00:00:00 2001 From: anime Date: Tue, 3 Dec 2024 19:21:29 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E4=BF=AE=E5=A4=8D=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E8=B0=83=E7=94=A8React=20HOOK=E7=9A=84=E9=97=AE=E9=A2=98):?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit 8acb42d44dae705fe1ffb7ef2cc5bc589c7ff463) --- components/SEO.js | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/components/SEO.js b/components/SEO.js index b82087f3..b102ed11 100644 --- a/components/SEO.js +++ b/components/SEO.js @@ -12,9 +12,12 @@ import { useEffect } from 'react' */ const SEO = props => { const { children, siteInfo, post, NOTION_CONFIG } = props - let url = siteConfig('PATH')?.length - ? `${siteConfig('LINK')}/${siteConfig('SUB_PATH', '')}` - : siteConfig('LINK') + const PATH = siteConfig('PATH') + const LINK = siteConfig('LINK') + const SUB_PATH = siteConfig('SUB_PATH', '') + let url = PATH?.length + ? `${LINK}/${SUB_PATH}` + : LINK let image const router = useRouter() const meta = getSEOMeta(props, router, useGlobal()?.locale) @@ -40,7 +43,8 @@ const SEO = props => { }, []) // SEO关键词 - let keywords = meta?.tags || siteConfig('KEYWORDS') + const KEYWORDS = siteConfig('KEYWORDS') + let keywords = meta?.tags || KEYWORDS if (post?.tags && post?.tags?.length > 0) { keywords = post?.tags?.join(',') } @@ -48,11 +52,12 @@ const SEO = props => { url = `${url}/${meta.slug}` image = meta.image || '/bg_image.jpg' } - const title = meta?.title || siteConfig('TITLE') + const TITLE = siteConfig('TITLE') + const title = meta?.title || TITLE const description = meta?.description || `${siteInfo?.description}` const type = meta?.type || 'website' const lang = siteConfig('LANG').replace('-', '_') // Facebook OpenGraph 要 zh_CN 這樣的格式才抓得到語言 - const category = meta?.category || siteConfig('KEYWORDS') // section 主要是像是 category 這樣的分類,Facebook 用這個來抓連結的分類 + const category = meta?.category || KEYWORDS // section 主要是像是 category 這樣的分類,Facebook 用這個來抓連結的分類 const favicon = siteConfig('BLOG_FAVICON') const BACKGROUND_DARK = siteConfig('BACKGROUND_DARK', '', NOTION_CONFIG) @@ -94,6 +99,7 @@ const SEO = props => { const FACEBOOK_PAGE = siteConfig('FACEBOOK_PAGE', null, NOTION_CONFIG) + const AUTHOR = siteConfig('AUTHOR') return ( @@ -154,7 +160,7 @@ const SEO = props => { {meta?.type === 'Post' && ( <> - + @@ -173,6 +179,7 @@ const getSEOMeta = (props, router, locale) => { const { post, siteInfo, tag, category, page } = props const keyword = router?.query?.s + const TITLE = siteConfig('TITLE') switch (router.route) { case '/': return { @@ -235,7 +242,7 @@ const getSEOMeta = (props, router, locale) => { case '/search/[keyword]/page/[page]': return { title: `${keyword || ''}${keyword ? ' | ' : ''}${locale.NAV.SEARCH} | ${siteInfo?.title}`, - description: siteConfig('TITLE'), + description: TITLE, image: `${siteInfo?.pageCover}`, slug: 'search/' + (keyword || ''), type: 'website'