1
1
import BLOG from '@/blog.config'
2
- import React from 'react'
3
- import twikoo from 'twikoo'
2
+ import { loadExternalResource } from '@/lib/utils'
3
+ import { useEffect } from 'react'
4
+ // import twikoo from 'twikoo'
4
5
5
6
/**
6
7
* Giscus评论 @see https://giscus.app/zh-CN
@@ -10,17 +11,48 @@ import twikoo from 'twikoo'
10
11
*/
11
12
12
13
const Twikoo = ( { isDarkMode } ) => {
13
- React . useEffect ( ( ) => {
14
- twikoo ( {
15
- envId : BLOG . COMMENT_TWIKOO_ENV_ID , // 腾讯云环境填 envId;Vercel 环境填地址(https://xxx.vercel.app)
16
- el : '#twikoo' , // 容器元素
17
- lang : BLOG . LANG // 用于手动设定评论区语言,支持的语言列表 https://github.com/imaegoo/twikoo/blob/main/src/client/utils/i18n/index.js
18
- // region: 'ap-guangzhou', // 环境地域,默认为 ap-shanghai,腾讯云环境填 ap-shanghai 或 ap-guangzhou;Vercel 环境不填
19
- // path: location.pathname, // 用于区分不同文章的自定义 js 路径,如果您的文章路径不是 location.pathname,需传此参数
20
- } )
21
- } )
14
+ const loadTwikoo = async ( ) => {
15
+ try {
16
+ const url = await loadExternalResource ( BLOG . COMMENT_TWIKOO_CDN_URL , 'js' )
17
+ console . log ( 'twikoo 加载成功' , url )
18
+ const twikoo = window . twikoo
19
+ twikoo . init ( {
20
+ envId : BLOG . COMMENT_TWIKOO_ENV_ID , // 腾讯云环境填 envId;Vercel 环境填地址(https://xxx.vercel.app)
21
+ el : '#twikoo' , // 容器元素
22
+ lang : BLOG . LANG // 用于手动设定评论区语言,支持的语言列表 https://github.com/imaegoo/twikoo/blob/main/src/client/utils/i18n/index.js
23
+ // region: 'ap-guangzhou', // 环境地域,默认为 ap-shanghai,腾讯云环境填 ap-shanghai 或 ap-guangzhou;Vercel 环境不填
24
+ // path: location.pathname, // 用于区分不同文章的自定义 js 路径,如果您的文章路径不是 location.pathname,需传此参数
25
+ } )
26
+
27
+ twikoo . getCommentsCount ( {
28
+ envId : BLOG . COMMENT_TWIKOO_ENV_ID , // 环境 ID
29
+ // region: 'ap-guangzhou', // 环境地域,默认为 ap-shanghai,如果您的环境地域不是上海,需传此参数
30
+ urls : [ // 不包含协议、域名、参数的文章路径列表,必传参数
31
+ '/article/notion-next' ,
32
+ '/article/notion-next-guide'
33
+ ] ,
34
+ includeReply : false // 评论数是否包括回复,默认:false
35
+ } ) . then ( function ( res ) {
36
+ console . log ( res )
37
+ // 返回示例: [
38
+ // { url: '/2020/10/post-1.html', count: 10 },
39
+ // { url: '/2020/11/post-2.html', count: 0 },
40
+ // { url: '/2020/12/post-3.html', count: 20 }
41
+ // ]
42
+ } ) . catch ( function ( err ) {
43
+ // 发生错误
44
+ console . error ( err )
45
+ } )
46
+ } catch ( error ) {
47
+ console . error ( 'twikoo 加载失败' , error )
48
+ }
49
+ }
50
+
51
+ useEffect ( ( ) => {
52
+ loadTwikoo ( )
53
+ } , [ ] )
22
54
return (
23
- < div id = "twikoo" > </ div >
55
+ < div id = "twikoo" > </ div >
24
56
)
25
57
}
26
58
0 commit comments