Skip to content

Commit 9246c8d

Browse files
committed
remove gitalk valine mermaid
1 parent cd1b38a commit 9246c8d

File tree

9 files changed

+110
-64
lines changed

9 files changed

+110
-64
lines changed

blog.config.js

+10-1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ const BLOG = {
1212
APPEARANCE: process.env.NEXT_PUBLIC_APPEARANCE || 'light', // ['light', 'dark', 'auto'], // light 日间模式 , dark夜间模式, auto根据时间和主题自动夜间模式
1313
APPEARANCE_DARK_TIME: process.env.NEXT_PUBLIC_APPEARANCE_DARK_TIME || [18, 6], // 夜间模式起至时间,false时关闭根据时间自动切换夜间模式
1414

15+
// 3.14.1版本后,欢迎语在此配置,英文逗号隔开 , 即可支持多个欢迎语打字效果。
16+
GREETING_WORDS: process.env.NEXT_PUBLIC_GREETING_WORDS || 'Hi,我是一个程序员, Hi,我是一个打工人,Hi,我是一个干饭人,欢迎来到我的博客🎉',
17+
1518
CUSTOM_MENU: process.env.NEXT_PUBLIC_CUSTOM_MENU || false, // 支持Menu 类型,从3.12.0版本起,各主题将逐步支持灵活的二级菜单配置,替代了原来的Page类型,此配置是试验功能、默认关闭。
1619

1720
AUTHOR: process.env.NEXT_PUBLIC_AUTHOR || 'NotionNext', // 您的昵称 例如 tangly1024
@@ -95,6 +98,9 @@ const BLOG = {
9598
CODE_MAC_BAR: true, // 代码左上角显示mac的红黄绿图标
9699
CODE_LINE_NUMBERS: process.env.NEXT_PUBLIC_CODE_LINE_NUMBERS || 'false', // 是否显示行号
97100

101+
// Mermaid 图表CDN
102+
MERMAID_CDN: process.env.NEXT_PUBLIC_MERMAID_CDN || 'https://cdn.jsdelivr.net/npm/[email protected]/dist/mermaid.min.js', // CDN
103+
98104
BACKGROUND_LIGHT: '#eeeeee', // use hex value, don't forget '#' e.g #fffefc
99105
BACKGROUND_DARK: '#000000', // use hex value, don't forget '#'
100106
SUB_PATH: '', // leave this empty unless you want to deploy in a folder
@@ -231,11 +237,14 @@ const BLOG = {
231237
COMMENT_GITALK_CLIENT_SECRET:
232238
process.env.NEXT_PUBLIC_COMMENT_GITALK_CLIENT_SECRET || '', // e.g 40位ID, 在gitalk后台获取
233239
COMMENT_GITALK_DISTRACTION_FREE_MODE: false, // 类似facebook的无干扰模式
240+
COMMENT_GITALK_JS_CDN_URL: process.env.NEXT_PUBLIC_COMMENT_GITALK_JS_CDN_URL || 'https://cdn.jsdelivr.net/npm/gitalk@1/dist/gitalk.min.js', // gitalk客户端 js cdn
241+
COMMENT_GITALK_CSS_CDN_URL: process.env.NEXT_PUBLIC_COMMENT_GITALK_CSS_CDN_URL || 'https://cdn.jsdelivr.net/npm/gitalk@1/dist/gitalk.css', // gitalk客户端 css cdn
234242

235243
COMMENT_GITTER_ROOM: process.env.NEXT_PUBLIC_COMMENT_GITTER_ROOM || '', // gitter聊天室 see https://gitter.im/ 不需要则留空
236244
COMMENT_DAO_VOICE_ID: process.env.NEXT_PUBLIC_COMMENT_DAO_VOICE_ID || '', // DaoVoice http://dashboard.daovoice.io/get-started
237245
COMMENT_TIDIO_ID: process.env.NEXT_PUBLIC_COMMENT_TIDIO_ID || '', // [tidio_id] -> //code.tidio.co/[tidio_id].js
238246

247+
COMMENT_VALINE_CDN: process.env.NEXT_PUBLIC_VALINE_CDN || 'https://unpkg.com/[email protected]/dist/Valine.min.js',
239248
COMMENT_VALINE_APP_ID: process.env.NEXT_PUBLIC_VALINE_ID || '', // Valine @see https://valine.js.org/quickstart.html 或 https://github.com/stonehank/react-valine#%E8%8E%B7%E5%8F%96app-id-%E5%92%8C-app-key
240249
COMMENT_VALINE_APP_KEY: process.env.NEXT_PUBLIC_VALINE_KEY || '',
241250
COMMENT_VALINE_SERVER_URLS: process.env.NEXT_PUBLIC_VALINE_SERVER_URLS || '', // 该配置适用于国内自定义域名用户, 海外版本会自动检测(无需手动填写) @see https://valine.js.org/configuration.html#serverURLs
@@ -314,7 +323,7 @@ const BLOG = {
314323

315324
// 作废配置
316325
AVATAR: process.env.NEXT_PUBLIC_AVATAR || '/avatar.svg', // 作者头像,被notion中的ICON覆盖。若无ICON则取public目录下的avatar.png
317-
TITLE: process.env.NEXT_PUBLIC_TITLE || 'NotionNext BLOG', // 站点标题 ,被notion中的页面标题覆盖
326+
TITLE: process.env.NEXT_PUBLIC_TITLE || 'NotionNext BLOG', // 站点标题 ,被notion中的页面标题覆盖;此处请勿留空白,否则服务器无法编译
318327
HOME_BANNER_IMAGE:
319328
process.env.NEXT_PUBLIC_HOME_BANNER_IMAGE || './bg_image.jpg', // 首页背景大图, 会被notion中的封面图覆盖,若无封面图则会使用代码中的 /public/bg_image.jpg 文件
320329
DESCRIPTION:

components/Gitalk.js

+38-12
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,44 @@
1-
import 'gitalk/dist/gitalk.css'
1+
// import 'gitalk/dist/gitalk.css'
22
import BLOG from '@/blog.config'
3-
import GitalkComponent from 'gitalk/dist/gitalk-component'
3+
import { loadExternalResource } from '@/lib/utils'
4+
import { useEffect } from 'react'
5+
// import GitalkComponent from 'gitalk/dist/gitalk-component'
46

57
const Gitalk = ({ frontMatter }) => {
6-
return <GitalkComponent options={{
7-
id: frontMatter.id,
8-
title: frontMatter.title,
9-
clientID: BLOG.COMMENT_GITALK_CLIENT_ID,
10-
clientSecret: BLOG.COMMENT_GITALK_CLIENT_SECRET,
11-
repo: BLOG.COMMENT_GITALK_REPO,
12-
owner: BLOG.COMMENT_GITALK_OWNER,
13-
admin: BLOG.COMMENT_GITALK_ADMIN.split(','),
14-
distractionFreeMode: JSON.parse(BLOG.COMMENT_GITALK_DISTRACTION_FREE_MODE)
15-
}} />
8+
// return <GitalkComponent options={{
9+
// id: frontMatter.id,
10+
// title: frontMatter.title,
11+
// clientID: BLOG.COMMENT_GITALK_CLIENT_ID,
12+
// clientSecret: BLOG.COMMENT_GITALK_CLIENT_SECRET,
13+
// repo: BLOG.COMMENT_GITALK_REPO,
14+
// owner: BLOG.COMMENT_GITALK_OWNER,
15+
// admin: BLOG.COMMENT_GITALK_ADMIN.split(','),
16+
// distractionFreeMode: JSON.parse(BLOG.COMMENT_GITALK_DISTRACTION_FREE_MODE)
17+
// }} />
18+
const loadGitalk = async() => {
19+
const css = await loadExternalResource(BLOG.COMMENT_GITALK_CSS_CDN_URL, 'css')
20+
const js = await loadExternalResource(BLOG.COMMENT_GITALK_JS_CDN_URL, 'js')
21+
22+
console.log('gitalk 加载成功', css, js)
23+
const Gitalk = window.Gitalk
24+
25+
const gitalk = new Gitalk({
26+
clientID: BLOG.COMMENT_GITALK_CLIENT_ID,
27+
clientSecret: BLOG.COMMENT_GITALK_CLIENT_SECRET,
28+
repo: BLOG.COMMENT_GITALK_REPO,
29+
owner: BLOG.COMMENT_GITALK_OWNER,
30+
admin: BLOG.COMMENT_GITALK_ADMIN.split(','),
31+
id: frontMatter.id, // Ensure uniqueness and length less than 50
32+
distractionFreeMode: JSON.parse(BLOG.COMMENT_GITALK_DISTRACTION_FREE_MODE) // Facebook-like distraction free mode
33+
})
34+
35+
gitalk.render('gitalk-container')
36+
}
37+
useEffect(() => {
38+
loadGitalk()
39+
}, [])
40+
41+
return <div id="gitalk-container"></div>
1642
}
1743

1844
export default Gitalk

components/NotionPage.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ const Equation = dynamic(() =>
1313
// 化学方程式
1414
await import('@/lib/mhchem')
1515
return m.Equation
16-
})
16+
}), { ssr: false }
1717
)
1818
const Pdf = dynamic(
1919
() => import('react-notion-x/build/third-party/pdf').then((m) => m.Pdf),

components/PrismMac.js

+5-2
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,11 @@ const renderMermaid = async() => {
6464
}
6565
}
6666
if (needLoad) {
67-
const asyncMermaid = await import('mermaid')
68-
asyncMermaid.default.contentLoaded()
67+
// const asyncMermaid = await import('mermaid')
68+
const url = await loadExternalResource(BLOG.MERMAID_CDN, 'js')
69+
const mermaid = window.mermaid
70+
console.log('mermaid加载成功', url, mermaid)
71+
mermaid.contentLoaded()
6972
}
7073
}
7174
}

components/Valine.js

-3
This file was deleted.

components/ValineComponent.js

+52-40
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,61 @@
11
import BLOG from '@/blog.config'
2-
import { useRouter } from 'next/router'
3-
import React from 'react'
4-
import Valine from 'valine'
2+
import { loadExternalResource } from '@/lib/utils'
3+
import { useEffect } from 'react'
54

6-
const ValineComponent = (props) => {
7-
const router = useRouter()
8-
const initValine = (url) => {
9-
const valine = new Valine({
10-
el: '#v-comments',
11-
appId: BLOG.COMMENT_VALINE_APP_ID,
12-
appKey: BLOG.COMMENT_VALINE_APP_KEY,
13-
avatar: '',
14-
path: url || router.asPath,
15-
recordIP: true,
16-
placeholder: BLOG.COMMENT_VALINE_PLACEHOLDER,
17-
serverURLs: BLOG.COMMENT_VALINE_SERVER_URLS,
18-
visitor: true
19-
})
20-
if (!valine) {
21-
console.error('valine错误')
5+
const ValineComponent = ({ path }) => {
6+
const loadValine = async () => {
7+
try {
8+
const url = await loadExternalResource(BLOG.COMMENT_VALINE_CDN, 'js')
9+
console.log('valine 加载成功', url)
10+
const Valine = window.Valine
11+
// eslint-disable-next-line no-unused-vars
12+
const valine = new Valine({
13+
el: '#valine', // 容器元素
14+
lang: BLOG.LANG, // 用于手动设定评论区语言,支持的语言列表 https://github.com/imaegoo/twikoo/blob/main/src/client/utils/i18n/index.js
15+
appId: BLOG.COMMENT_VALINE_APP_ID,
16+
appKey: BLOG.COMMENT_VALINE_APP_KEY,
17+
avatar: '',
18+
path,
19+
recordIP: true,
20+
placeholder: BLOG.COMMENT_VALINE_PLACEHOLDER,
21+
serverURLs: BLOG.COMMENT_VALINE_SERVER_URLS,
22+
visitor: true
23+
})
24+
console.log('初始化valine成功')
25+
} catch (error) {
26+
console.error('twikoo 加载失败', error)
2227
}
2328
}
2429

25-
const updateValine = url => {
26-
// 移除旧的评论区,否则会重复渲染。
27-
const wrapper = document.getElementById('v-wrapper')
28-
const comments = document.getElementById('v-comments')
29-
wrapper.removeChild(comments)
30-
const newComments = document.createElement('div')
31-
newComments.id = 'v-comments'
32-
newComments.name = new Date()
33-
wrapper.appendChild(newComments)
34-
initValine(url)
35-
}
36-
37-
React.useEffect(() => {
38-
initValine()
39-
router.events.on('routeChangeComplete', updateValine)
40-
return () => {
41-
router.events.off('routeChangeComplete', updateValine)
42-
}
30+
useEffect(() => {
31+
loadValine()
4332
}, [])
44-
return <div id='v-wrapper'>
45-
<div id='v-comments'></div>
46-
</div>
33+
34+
return <div id="valine"></div>
35+
36+
// const updateValine = url => {
37+
// // 移除旧的评论区,否则会重复渲染。
38+
// const wrapper = document.getElementById('v-wrapper')
39+
// const comments = document.getElementById('v-comments')
40+
// wrapper.removeChild(comments)
41+
// const newComments = document.createElement('div')
42+
// newComments.id = 'v-comments'
43+
// newComments.name = new Date()
44+
// wrapper.appendChild(newComments)
45+
// initValine(url)
46+
// }
47+
48+
// useEffect(() => {
49+
// initValine()
50+
// router.events.on('routeChangeComplete', updateValine)
51+
// return () => {
52+
// router.events.off('routeChangeComplete', updateValine)
53+
// }
54+
// }, [])
55+
56+
// return <div id='v-wrapper'>
57+
// <div id='v-comments'></div>
58+
// </div>
4759
}
4860

4961
export default ValineComponent

package.json

+1-4
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,11 @@
3030
"copy-to-clipboard": "^3.3.1",
3131
"eslint-plugin-react-hooks": "^4.6.0",
3232
"feed": "^4.2.2",
33-
"gitalk": "^1.7.2",
3433
"js-md5": "^0.7.3",
3534
"localStorage": "^1.0.4",
3635
"lodash.throttle": "^4.1.1",
3736
"mark.js": "^8.11.1",
3837
"memory-cache": "^0.2.0",
39-
"mermaid": "9.2.2",
4038
"mongodb": "^4.6.0",
4139
"next": "13.3.1",
4240
"notion-client": "6.15.6",
@@ -56,8 +54,7 @@
5654
"react-tweet-embed": "~2.0.0",
5755
"smoothscroll-polyfill": "^0.4.4",
5856
"typed.js": "^2.0.12",
59-
"use-ackee": "^3.0.0",
60-
"valine": "^1.4.18"
57+
"use-ackee": "^3.0.0"
6158
},
6259
"devDependencies": {
6360
"@waline/client": "^2.5.1",

themes/hexo/components/Header.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import CONFIG_HEXO from '../config_hexo'
55
import NavButtonGroup from './NavButtonGroup'
66
import throttle from 'lodash.throttle'
77
import { useGlobal } from '@/lib/global'
8+
import BLOG from '@/blog.config'
89

910
let wrapperTop = 0
1011
let windowTop = 0
@@ -25,7 +26,7 @@ const Header = props => {
2526
if (!typed && window && document.getElementById('typed')) {
2627
changeType(
2728
new Typed('#typed', {
28-
strings: CONFIG_HEXO.HOME_BANNER_GREETINGS,
29+
strings: BLOG.GREETING_WORDS.split(','),
2930
typeSpeed: 200,
3031
backSpeed: 100,
3132
backDelay: 400,

themes/hexo/config_hexo.js

+1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
const CONFIG_HEXO = {
22
HOME_BANNER_ENABLE: true,
3+
// 3.14.1以后的版本中,欢迎语在blog.config.js中配置,用英文逗号','隔开多个。
34
HOME_BANNER_GREETINGS: ['Hi,我是一个程序员', 'Hi,我是一个打工人', 'Hi,我是一个干饭人', '欢迎来到我的博客🎉'], // 首页大图标语文字
45

56
HOME_NAV_BUTTONS: true, // 首页是否显示分类大图标按钮

0 commit comments

Comments
 (0)