Skip to content

Commit 70ef50c

Browse files
committed
async
1 parent 9246c8d commit 70ef50c

12 files changed

+118
-90
lines changed

components/DebugPanel.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { useGlobal } from '@/lib/global'
88
*
99
* @returns 调试面板
1010
*/
11-
export function DebugPanel() {
11+
const DebugPanel = () => {
1212
const [show, setShow] = useState(false)
1313
const { theme, changeTheme, switchTheme, locale } = useGlobal()
1414
const [siteConfig, updateSiteConfig] = useState({})
@@ -128,3 +128,4 @@ export function DebugPanel() {
128128
</>
129129
)
130130
}
131+
export default DebugPanel

components/ExternalPlugins.js

+58
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
import BLOG from 'blog.config'
2+
import dynamic from 'next/dynamic'
3+
4+
// import TwikooCommentCounter from '@/components/TwikooCommentCounter'
5+
// import { DebugPanel } from '@/components/DebugPanel'
6+
// import { ThemeSwitch } from '@/components/ThemeSwitch'
7+
// import { Fireworks } from '@/components/Fireworks'
8+
// import { Nest } from '@/components/Nest'
9+
// import { FlutteringRibbon } from '@/components/FlutteringRibbon'
10+
// import { Ribbon } from '@/components/Ribbon'
11+
// import { Sakura } from '@/components/Sakura'
12+
// import { StarrySky } from '@/components/StarrySky'
13+
// import { Analytics } from '@vercel/analytics/react'
14+
15+
const TwikooCommentCounter = dynamic(() => import('@/components/TwikooCommentCounter'), { ssr: false })
16+
const DebugPanel = dynamic(() => import('@/components/DebugPanel'), { ssr: false })
17+
const ThemeSwitch = dynamic(() => import('@/components/ThemeSwitch'), { ssr: false })
18+
const Fireworks = dynamic(() => import('@/components/Fireworks'), { ssr: false })
19+
const Nest = dynamic(() => import('@/components/Nest'), { ssr: false })
20+
const FlutteringRibbon = dynamic(() => import('@/components/FlutteringRibbon'), { ssr: false })
21+
const Ribbon = dynamic(() => import('@/components/Ribbon'), { ssr: false })
22+
const Sakura = dynamic(() => import('@/components/Sakura'), { ssr: false })
23+
const StarrySky = dynamic(() => import('@/components/StarrySky'), { ssr: false })
24+
const Analytics = dynamic(() => import('@vercel/analytics/react').then(async (m) => { return m.Analytics }), { ssr: false })
25+
const MusicPlayer = dynamic(() => import('@/components/Player'), { ssr: false })
26+
const Ackee = dynamic(() => import('@/components/Ackee'), { ssr: false })
27+
const Gtag = dynamic(() => import('@/components/Gtag'), { ssr: false })
28+
const Busuanzi = dynamic(() => import('@/components/Busuanzi'), { ssr: false })
29+
const GoogleAdsense = dynamic(() => import('@/components/GoogleAdsense'), { ssr: false })
30+
const Messenger = dynamic(() => import('@/components/FacebookMessenger'), { ssr: false })
31+
32+
/**
33+
* 各种第三方组件
34+
* @param {*} props
35+
* @returns
36+
*/
37+
const ExternalPlugin = (props) => {
38+
return <>
39+
{JSON.parse(BLOG.THEME_SWITCH) && <ThemeSwitch />}
40+
{JSON.parse(BLOG.DEBUG) && <DebugPanel />}
41+
{BLOG.ANALYTICS_ACKEE_TRACKER && <Ackee />}
42+
{BLOG.ANALYTICS_GOOGLE_ID && <Gtag />}
43+
{BLOG.ANALYTICS_VERCEL && <Analytics />}
44+
{JSON.parse(BLOG.ANALYTICS_BUSUANZI_ENABLE) && <Busuanzi />}
45+
{BLOG.ADSENSE_GOOGLE_ID && <GoogleAdsense />}
46+
{BLOG.FACEBOOK_APP_ID && BLOG.FACEBOOK_PAGE_ID && <Messenger />}
47+
{JSON.parse(BLOG.FIREWORKS) && <Fireworks />}
48+
{JSON.parse(BLOG.SAKURA) && <Sakura />}
49+
{JSON.parse(BLOG.STARRY_SKY) && <StarrySky />}
50+
{JSON.parse(BLOG.MUSIC_PLAYER) && <MusicPlayer />}
51+
{JSON.parse(BLOG.NEST) && <Nest />}
52+
{JSON.parse(BLOG.FLUTTERINGRIBBON) && <FlutteringRibbon />}
53+
{JSON.parse(BLOG.COMMENT_TWIKOO_COUNT_ENABLE) && <TwikooCommentCounter {...props}/>}
54+
{JSON.parse(BLOG.RIBBON) && <Ribbon />}
55+
</>
56+
}
57+
58+
export default ExternalPlugin

components/Fireworks.js

+4-3
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,17 @@
22
* https://codepen.io/juliangarnier/pen/gmOwJX
33
* custom by hexo-theme-yun @YunYouJun
44
*/
5-
import React from 'react'
5+
import { useEffect } from 'react'
66
import anime from 'animejs'
77
import BLOG from 'blog.config'
88

9-
export const Fireworks = () => {
10-
React.useEffect(() => {
9+
const Fireworks = () => {
10+
useEffect(() => {
1111
createFireworks({})
1212
}, [])
1313
return <canvas id='fireworks' className='fireworks'></canvas>
1414
}
15+
export default Fireworks
1516

1617
/**
1718
* 创建烟花

components/FlutteringRibbon.js

+5-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/* eslint-disable */
2-
import React from 'react'
2+
import { useEffect } from 'react'
33
const id = 'canvasFlutteringRibbon'
44
export const FlutteringRibbon = () => {
55
const destroyRibbon = ()=>{
@@ -9,15 +9,17 @@ export const FlutteringRibbon = () => {
99
}
1010
}
1111

12-
React.useEffect(() => {
12+
useEffect(() => {
1313
createFlutteringRibbon()
1414
return () => destroyRibbon()
1515

1616
}, [])
1717
return <></>
18-
1918
}
2019

20+
export default FlutteringRibbon
21+
22+
2123
/**
2224
* 创建连接点
2325
* @param config

components/MusicPlayer.js

-7
This file was deleted.

components/Nest.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/* eslint-disable */
22
import { useEffect } from 'react'
33
const id = 'canvasNestCreated'
4-
export const Nest = () => {
4+
const Nest = () => {
55
const destroyNest = ()=>{
66
const nest = document.getElementById(id)
77
if(nest && nest.parentNode){
@@ -16,6 +16,8 @@ export const Nest = () => {
1616
return <></>
1717
}
1818

19+
export default Nest
20+
1921
/**
2022
* 创建连接点
2123
* @param config

components/Ribbon.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import { useEffect } from 'react'
33
const id = 'canvasRibbon'
44

5-
export const Ribbon = () => {
5+
const Ribbon = () => {
66
const destroyRibbon = ()=>{
77
const ribbon = document.getElementById(id)
88
if(ribbon && ribbon.parentNode){
@@ -17,6 +17,8 @@ export const Ribbon = () => {
1717
return <></>
1818
}
1919

20+
export default Ribbon
21+
2022
/**
2123
* 创建连接点
2224
* @param config

components/Sakura.js

+3-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

components/StarrySky.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/* eslint-disable */
22
import React from 'react'
33

4-
export const StarrySky = () => {
4+
const StarrySky = () => {
55
React.useEffect(() => {
66
dark()
77
}, [])
@@ -12,6 +12,7 @@ export const StarrySky = () => {
1212
)
1313
}
1414

15+
export default StarrySky
1516
/**
1617
* 创建星空雨
1718
* @param config

components/ThemeSwitch.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { Draggable } from './Draggable'
66
*
77
* @returns 主题切换
88
*/
9-
export function ThemeSwitch() {
9+
const ThemeSwitch = () => {
1010
const { theme, changeTheme } = useGlobal()
1111

1212
const onSelectChange = (e) => {
@@ -30,3 +30,5 @@ export function ThemeSwitch() {
3030
</>
3131
)
3232
}
33+
34+
export default ThemeSwitch

pages/_app.js

+12-48
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
import BLOG from 'blog.config'
2-
import React, { useEffect } from 'react'
3-
import dynamic from 'next/dynamic'
1+
import { useEffect } from 'react'
42

53
import 'animate.css'
64
import '@/styles/globals.css'
@@ -11,56 +9,21 @@ import 'react-notion-x/src/styles.css'
119
import '@/styles/notion.css' // 重写部分样式
1210

1311
import { GlobalContextProvider } from '@/lib/global'
14-
import { DebugPanel } from '@/components/DebugPanel'
15-
import { ThemeSwitch } from '@/components/ThemeSwitch'
16-
import { Fireworks } from '@/components/Fireworks'
17-
import { Nest } from '@/components/Nest'
18-
import { FlutteringRibbon } from '@/components/FlutteringRibbon'
19-
import { Ribbon } from '@/components/Ribbon'
20-
import { Sakura } from '@/components/Sakura'
21-
import { StarrySky } from '@/components/StarrySky'
22-
import MusicPlayer from '@/components/MusicPlayer'
23-
import ExternalScript from '@/components/ExternalScript'
24-
import smoothscroll from 'smoothscroll-polyfill'
25-
import { Analytics } from '@vercel/analytics/react'
2612

13+
import { isMobile } from '@/lib/utils'
2714
import AOS from 'aos'
2815
import 'aos/dist/aos.css' // You can also use <link> for styles
29-
import { isMobile } from '@/lib/utils'
30-
import TwikooCommentCounter from '@/components/TwikooCommentCounter'
3116

32-
const Ackee = dynamic(() => import('@/components/Ackee'), { ssr: false })
33-
const Gtag = dynamic(() => import('@/components/Gtag'), { ssr: false })
34-
const Busuanzi = dynamic(() => import('@/components/Busuanzi'), { ssr: false })
35-
const GoogleAdsense = dynamic(() => import('@/components/GoogleAdsense'), {
36-
ssr: false
37-
})
38-
const Messenger = dynamic(() => import('@/components/FacebookMessenger'), {
39-
ssr: false
40-
})
17+
import smoothscroll from 'smoothscroll-polyfill'
18+
import dynamic from 'next/dynamic'
4119

42-
const MyApp = ({ Component, pageProps }) => {
43-
// 外部插件
44-
const externalPlugins = <>
45-
{JSON.parse(BLOG.THEME_SWITCH) && <ThemeSwitch />}
46-
{JSON.parse(BLOG.DEBUG) && <DebugPanel />}
47-
{BLOG.ANALYTICS_ACKEE_TRACKER && <Ackee />}
48-
{BLOG.ANALYTICS_GOOGLE_ID && <Gtag />}
49-
{BLOG.ANALYTICS_VERCEL && <Analytics />}
50-
{JSON.parse(BLOG.ANALYTICS_BUSUANZI_ENABLE) && <Busuanzi />}
51-
{BLOG.ADSENSE_GOOGLE_ID && <GoogleAdsense />}
52-
{BLOG.FACEBOOK_APP_ID && BLOG.FACEBOOK_PAGE_ID && <Messenger />}
53-
{JSON.parse(BLOG.FIREWORKS) && <Fireworks />}
54-
{JSON.parse(BLOG.SAKURA) && <Sakura />}
55-
{JSON.parse(BLOG.STARRY_SKY) && <StarrySky />}
56-
{JSON.parse(BLOG.MUSIC_PLAYER) && <MusicPlayer />}
57-
{JSON.parse(BLOG.NEST) && <Nest />}
58-
{JSON.parse(BLOG.FLUTTERINGRIBBON) && <FlutteringRibbon />}
59-
{JSON.parse(BLOG.COMMENT_TWIKOO_COUNT_ENABLE) && <TwikooCommentCounter {...pageProps}/>}
60-
{JSON.parse(BLOG.RIBBON) && <Ribbon />}
61-
<ExternalScript/>
62-
</>
20+
// 自定义样式css和js引入
21+
import ExternalScript from '@/components/ExternalScript'
6322

23+
// 各种扩展插件 动画等
24+
const ExternalPlugins = dynamic(() => import('@/components/ExternalPlugins'))
25+
26+
const MyApp = ({ Component, pageProps }) => {
6427
useEffect(() => {
6528
AOS.init()
6629
if (isMobile()) {
@@ -71,7 +34,8 @@ const MyApp = ({ Component, pageProps }) => {
7134
return (
7235
<GlobalContextProvider>
7336
<Component {...pageProps} />
74-
{externalPlugins}
37+
<ExternalPlugins {...pageProps}/>
38+
<ExternalScript/>
7539
</GlobalContextProvider>
7640
)
7741
}

themes/index.js

+23-23
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,32 @@
11
/**
22
* 切换主题请修改 blog.config.js 中的 THEME 字段
33
*/
4-
import * as next from './next'
5-
import * as fukasawa from './fukasawa'
64
import * as hexo from './hexo'
7-
import * as medium from './medium'
8-
import * as nobelium from './nobelium'
9-
import * as matery from './matery'
10-
import * as example from './example'
11-
import * as simple from './simple'
5+
// import * as next from './next'
6+
// import * as fukasawa from './fukasawa'
7+
// import * as medium from './medium'
8+
// import * as nobelium from './nobelium'
9+
// import * as matery from './matery'
10+
// import * as example from './example'
11+
// import * as simple from './simple'
1212

1313
export const ALL_THEME = [
14-
'hexo',
15-
'matery',
16-
'next',
17-
'medium',
18-
'fukasawa',
19-
'nobelium',
20-
'example',
21-
'simple'
14+
'hexo'
15+
// 'matery',
16+
// 'next',
17+
// 'medium',
18+
// 'fukasawa',
19+
// 'nobelium',
20+
// 'example',
21+
// 'simple'
2222
]
2323
export {
24-
hexo,
25-
next,
26-
medium,
27-
fukasawa,
28-
nobelium,
29-
matery,
30-
example,
31-
simple
24+
hexo
25+
// next,
26+
// medium,
27+
// fukasawa,
28+
// nobelium,
29+
// matery,
30+
// example,
31+
// simple
3232
}

0 commit comments

Comments
 (0)