@@ -6,18 +6,18 @@ import { useRouter } from 'next/router'
6
6
import { useEffect } from 'react'
7
7
8
8
/**
9
- * 页面的Head头,通常有用于SEO
9
+ * 页面的Head头,有用于SEO
10
10
* @param {* } param0
11
11
* @returns
12
12
*/
13
13
const GlobalHead = props => {
14
- const { children, siteInfo, post } = props
14
+ const { children, siteInfo, post, NOTION_CONFIG } = props
15
15
let url = siteConfig ( 'PATH' ) ?. length
16
16
? `${ siteConfig ( 'LINK' ) } /${ siteConfig ( 'SUB_PATH' , '' ) } `
17
17
: siteConfig ( 'LINK' )
18
18
let image
19
19
const router = useRouter ( )
20
- const meta = getSEOMeta ( props , router , useGlobal ( ) )
20
+ const meta = getSEOMeta ( props , router , useGlobal ( ) ?. locale )
21
21
if ( meta ) {
22
22
url = `${ url } /${ meta . slug } `
23
23
image = meta . image || '/bg_image.jpg'
@@ -29,7 +29,45 @@ const GlobalHead = props => {
29
29
const category = meta ?. category || siteConfig ( 'KEYWORDS' ) // section 主要是像是 category 這樣的分類,Facebook 用這個來抓連結的分類
30
30
const favicon = siteConfig ( 'BLOG_FAVICON' )
31
31
const webFontUrl = siteConfig ( 'FONT_URL' )
32
+ const BACKGROUND_DARK = siteConfig ( 'BACKGROUND_DARK' , '' , NOTION_CONFIG )
32
33
34
+ const SEO_BAIDU_SITE_VERIFICATION = siteConfig (
35
+ 'SEO_BAIDU_SITE_VERIFICATION' ,
36
+ null ,
37
+ NOTION_CONFIG
38
+ )
39
+
40
+ const SEO_GOOGLE_SITE_VERIFICATION = siteConfig (
41
+ 'SEO_GOOGLE_SITE_VERIFICATION' ,
42
+ null ,
43
+ NOTION_CONFIG
44
+ )
45
+
46
+ const BLOG_FAVICON = siteConfig ( 'BLOG_FAVICON' , null , NOTION_CONFIG )
47
+
48
+ const COMMENT_WEBMENTION_ENABLE = siteConfig (
49
+ 'COMMENT_WEBMENTION_ENABLE' ,
50
+ null ,
51
+ NOTION_CONFIG
52
+ )
53
+
54
+ const COMMENT_WEBMENTION_HOSTNAME = siteConfig (
55
+ 'COMMENT_WEBMENTION_HOSTNAME' ,
56
+ null ,
57
+ NOTION_CONFIG
58
+ )
59
+ const COMMENT_WEBMENTION_AUTH = siteConfig (
60
+ 'COMMENT_WEBMENTION_AUTH' ,
61
+ null ,
62
+ NOTION_CONFIG
63
+ )
64
+ const ANALYTICS_BUSUANZI_ENABLE = siteConfig (
65
+ 'ANALYTICS_BUSUANZI_ENABLE' ,
66
+ null ,
67
+ NOTION_CONFIG
68
+ )
69
+
70
+ const FACEBOOK_PAGE = siteConfig ( 'FACEBOOK_PAGE' , null , NOTION_CONFIG )
33
71
// SEO关键词
34
72
let keywords = meta ?. tags || siteConfig ( 'KEYWORDS' )
35
73
if ( post ?. tags && post ?. tags ?. length > 0 ) {
@@ -59,24 +97,23 @@ const GlobalHead = props => {
59
97
< Head >
60
98
< link rel = 'icon' href = { favicon } />
61
99
< title > { title } </ title >
62
- < meta name = 'theme-color' content = { siteConfig ( 'BACKGROUND_DARK' ) } />
63
-
100
+ < meta name = 'theme-color' content = { BACKGROUND_DARK } />
64
101
< meta
65
102
name = 'viewport'
66
103
content = 'width=device-width, initial-scale=1.0, maximum-scale=5.0, minimum-scale=1.0'
67
104
/>
68
105
< meta name = 'robots' content = 'follow, index' />
69
106
< meta charSet = 'UTF-8' />
70
- { siteConfig ( ' SEO_GOOGLE_SITE_VERIFICATION' ) && (
107
+ { SEO_GOOGLE_SITE_VERIFICATION && (
71
108
< meta
72
109
name = 'google-site-verification'
73
- content = { siteConfig ( ' SEO_GOOGLE_SITE_VERIFICATION' ) }
110
+ content = { SEO_GOOGLE_SITE_VERIFICATION }
74
111
/>
75
112
) }
76
- { siteConfig ( ' SEO_BAIDU_SITE_VERIFICATION' ) && (
113
+ { SEO_BAIDU_SITE_VERIFICATION && (
77
114
< meta
78
115
name = 'baidu-site-verification'
79
- content = { siteConfig ( ' SEO_BAIDU_SITE_VERIFICATION' ) }
116
+ content = { SEO_BAIDU_SITE_VERIFICATION }
80
117
/>
81
118
) }
82
119
< meta name = 'keywords' content = { keywords } />
@@ -86,44 +123,39 @@ const GlobalHead = props => {
86
123
< meta property = 'og:description' content = { description } />
87
124
< meta property = 'og:url' content = { url } />
88
125
< meta property = 'og:image' content = { image } />
89
- < meta property = 'og:site_name' content = { siteConfig ( 'TITLE' ) } />
126
+ < meta property = 'og:site_name' content = { title } />
90
127
< meta property = 'og:type' content = { type } />
91
128
< meta name = 'twitter:card' content = 'summary_large_image' />
92
129
< meta name = 'twitter:description' content = { description } />
93
130
< meta name = 'twitter:title' content = { title } />
94
131
95
- < link rel = 'icon' href = { ` ${ siteConfig ( ' BLOG_FAVICON' ) } ` } />
132
+ < link rel = 'icon' href = { BLOG_FAVICON } />
96
133
97
- { siteConfig ( ' COMMENT_WEBMENTION_ENABLE' ) && (
134
+ { COMMENT_WEBMENTION_ENABLE && (
98
135
< >
99
136
< link
100
137
rel = 'webmention'
101
- href = { `https://webmention.io/${ siteConfig ( ' COMMENT_WEBMENTION_HOSTNAME' ) } /webmention` }
138
+ href = { `https://webmention.io/${ COMMENT_WEBMENTION_HOSTNAME } /webmention` }
102
139
/>
103
140
< link
104
141
rel = 'pingback'
105
- href = { `https://webmention.io/${ siteConfig ( ' COMMENT_WEBMENTION_HOSTNAME' ) } /xmlrpc` }
142
+ href = { `https://webmention.io/${ COMMENT_WEBMENTION_HOSTNAME } /xmlrpc` }
106
143
/>
144
+ { COMMENT_WEBMENTION_AUTH && (
145
+ < link href = { COMMENT_WEBMENTION_AUTH } rel = 'me' />
146
+ ) }
107
147
</ >
108
148
) }
109
149
110
- { siteConfig ( 'COMMENT_WEBMENTION_ENABLE' ) &&
111
- siteConfig ( 'COMMENT_WEBMENTION_AUTH' ) !== '' && (
112
- < link href = { siteConfig ( 'COMMENT_WEBMENTION_AUTH' ) } rel = 'me' />
113
- ) }
114
-
115
- { JSON . parse ( siteConfig ( 'ANALYTICS_BUSUANZI_ENABLE' ) ) && (
150
+ { ANALYTICS_BUSUANZI_ENABLE && (
116
151
< meta name = 'referrer' content = 'no-referrer-when-downgrade' />
117
152
) }
118
153
{ meta ?. type === 'Post' && (
119
154
< >
120
155
< meta property = 'article:published_time' content = { meta . publishDay } />
121
156
< meta property = 'article:author' content = { siteConfig ( 'AUTHOR' ) } />
122
157
< meta property = 'article:section' content = { category } />
123
- < meta
124
- property = 'article:publisher'
125
- content = { siteConfig ( 'FACEBOOK_PAGE' ) }
126
- />
158
+ < meta property = 'article:publisher' content = { FACEBOOK_PAGE } />
127
159
</ >
128
160
) }
129
161
{ children }
@@ -136,8 +168,7 @@ const GlobalHead = props => {
136
168
* @param {* } props
137
169
* @param {* } router
138
170
*/
139
- const getSEOMeta = ( props , router , global ) => {
140
- const { locale } = global
171
+ const getSEOMeta = ( props , router , locale ) => {
141
172
const { post, siteInfo, tag, category, page } = props
142
173
const keyword = router ?. query ?. s
143
174
0 commit comments