diff --git a/components/ExternalPlugins.js b/components/ExternalPlugins.js
index 3df09e6c..477bdce3 100644
--- a/components/ExternalPlugins.js
+++ b/components/ExternalPlugins.js
@@ -1,43 +1,79 @@
import { siteConfig } from '@/lib/config'
import dynamic from 'next/dynamic'
-import LA51 from './LA51'
-import WebWhiz from './Webwhiz'
-import TianLiGPT from './TianliGPT'
import { GlobalStyle } from './GlobalStyle'
+import LA51 from './LA51'
+import TianLiGPT from './TianliGPT'
+import WebWhiz from './Webwhiz'
import { CUSTOM_EXTERNAL_CSS, CUSTOM_EXTERNAL_JS } from '@/blog.config'
import { isBrowser, loadExternalResource } from '@/lib/utils'
+import { useEffect } from 'react'
+import { initGoogleAdsense } from './GoogleAdsense'
-const TwikooCommentCounter = dynamic(() => import('@/components/TwikooCommentCounter'), { ssr: false })
-const DebugPanel = dynamic(() => import('@/components/DebugPanel'), { ssr: false })
-const ThemeSwitch = dynamic(() => import('@/components/ThemeSwitch'), { ssr: false })
-const Fireworks = dynamic(() => import('@/components/Fireworks'), { ssr: false })
+const TwikooCommentCounter = dynamic(
+ () => import('@/components/TwikooCommentCounter'),
+ { ssr: false }
+)
+const DebugPanel = dynamic(() => import('@/components/DebugPanel'), {
+ ssr: false
+})
+const ThemeSwitch = dynamic(() => import('@/components/ThemeSwitch'), {
+ ssr: false
+})
+const Fireworks = dynamic(() => import('@/components/Fireworks'), {
+ ssr: false
+})
const Nest = dynamic(() => import('@/components/Nest'), { ssr: false })
-const FlutteringRibbon = dynamic(() => import('@/components/FlutteringRibbon'), { ssr: false })
+const FlutteringRibbon = dynamic(
+ () => import('@/components/FlutteringRibbon'),
+ { ssr: false }
+)
const Ribbon = dynamic(() => import('@/components/Ribbon'), { ssr: false })
const Sakura = dynamic(() => import('@/components/Sakura'), { ssr: false })
-const StarrySky = dynamic(() => import('@/components/StarrySky'), { ssr: false })
-const DifyChatbot = dynamic(() => import('@/components/DifyChatbot'), { ssr: false });
-const Analytics = dynamic(() => import('@vercel/analytics/react').then(async (m) => { return m.Analytics }), { ssr: false })
+const StarrySky = dynamic(() => import('@/components/StarrySky'), {
+ ssr: false
+})
+const DifyChatbot = dynamic(() => import('@/components/DifyChatbot'), {
+ ssr: false
+})
+const Analytics = dynamic(
+ () =>
+ import('@vercel/analytics/react').then(async m => {
+ return m.Analytics
+ }),
+ { ssr: false }
+)
const MusicPlayer = dynamic(() => import('@/components/Player'), { ssr: false })
const Ackee = dynamic(() => import('@/components/Ackee'), { ssr: false })
const Gtag = dynamic(() => import('@/components/Gtag'), { ssr: false })
const Busuanzi = dynamic(() => import('@/components/Busuanzi'), { ssr: false })
-const GoogleAdsense = dynamic(() => import('@/components/GoogleAdsense'), { ssr: false })
-const Messenger = dynamic(() => import('@/components/FacebookMessenger'), { ssr: false })
+const Messenger = dynamic(() => import('@/components/FacebookMessenger'), {
+ ssr: false
+})
const VConsole = dynamic(() => import('@/components/VConsole'), { ssr: false })
-const CustomContextMenu = dynamic(() => import('@/components/CustomContextMenu'), { ssr: false })
-const DisableCopy = dynamic(() => import('@/components/DisableCopy'), { ssr: false })
-const AdBlockDetect = dynamic(() => import('@/components/AdBlockDetect'), { ssr: false })
-const LoadingProgress = dynamic(() => import('@/components/LoadingProgress'), { ssr: false })
-const AosAnimation = dynamic(() => import('@/components/AOSAnimation'), { ssr: false })
+const CustomContextMenu = dynamic(
+ () => import('@/components/CustomContextMenu'),
+ { ssr: false }
+)
+const DisableCopy = dynamic(() => import('@/components/DisableCopy'), {
+ ssr: false
+})
+const AdBlockDetect = dynamic(() => import('@/components/AdBlockDetect'), {
+ ssr: false
+})
+const LoadingProgress = dynamic(() => import('@/components/LoadingProgress'), {
+ ssr: false
+})
+const AosAnimation = dynamic(() => import('@/components/AOSAnimation'), {
+ ssr: false
+})
/**
* 各种插件脚本
* @param {*} props
* @returns
*/
-const ExternalPlugin = (props) => {
+const ExternalPlugin = props => {
const DISABLE_PLUGIN = siteConfig('DISABLE_PLUGIN')
const THEME_SWITCH = siteConfig('THEME_SWITCH')
const DEBUG = siteConfig('DEBUG')
@@ -55,7 +91,9 @@ const ExternalPlugin = (props) => {
const FLUTTERINGRIBBON = siteConfig('FLUTTERINGRIBBON')
const COMMENT_TWIKOO_COUNT_ENABLE = siteConfig('COMMENT_TWIKOO_COUNT_ENABLE')
const RIBBON = siteConfig('RIBBON')
- const CUSTOM_RIGHT_CLICK_CONTEXT_MENU = siteConfig('CUSTOM_RIGHT_CLICK_CONTEXT_MENU')
+ const CUSTOM_RIGHT_CLICK_CONTEXT_MENU = siteConfig(
+ 'CUSTOM_RIGHT_CLICK_CONTEXT_MENU'
+ )
const CAN_COPY = siteConfig('CAN_COPY')
const WEB_WHIZ_ENABLED = siteConfig('WEB_WHIZ_ENABLED')
const AD_WWADS_BLOCK_DETECT = siteConfig('AD_WWADS_BLOCK_DETECT')
@@ -113,88 +151,122 @@ const ExternalPlugin = (props) => {
}
}
+ useEffect(() => {
+ if (ADSENSE_GOOGLE_ID) {
+ setTimeout(() => {
+ // 异步渲染谷歌广告
+ initGoogleAdsense()
+ }, 1000)
+ }
+ }, [])
+
if (DISABLE_PLUGIN) {
return null
}
- return <>
+ return (
+ <>
+ {/* 全局样式嵌入 */}
+
- {/* 全局样式嵌入 */}
-
+ {THEME_SWITCH && }
+ {DEBUG && }
+ {ANALYTICS_ACKEE_TRACKER && }
+ {ANALYTICS_GOOGLE_ID && }
+ {ANALYTICS_VERCEL && }
+ {ANALYTICS_BUSUANZI_ENABLE && }
+ {FACEBOOK_APP_ID && FACEBOOK_PAGE_ID && }
+ {FIREWORKS && }
+ {SAKURA && }
+ {STARRY_SKY && }
+ {MUSIC_PLAYER && }
+ {NEST && }
+ {FLUTTERINGRIBBON && }
+ {COMMENT_TWIKOO_COUNT_ENABLE && }
+ {RIBBON && }
+ {DIFY_CHATBOT_ENABLED && }
+ {CUSTOM_RIGHT_CLICK_CONTEXT_MENU && }
+ {!CAN_COPY && }
+ {WEB_WHIZ_ENABLED && }
+ {AD_WWADS_BLOCK_DETECT && }
+ {TIANLI_KEY && }
+
+
+
+ {ANALYTICS_51LA_ID && ANALYTICS_51LA_CK && }
- {THEME_SWITCH && }
- {DEBUG && }
- {ANALYTICS_ACKEE_TRACKER && }
- {ANALYTICS_GOOGLE_ID && }
- {ANALYTICS_VERCEL && }
- {ANALYTICS_BUSUANZI_ENABLE && }
- {ADSENSE_GOOGLE_ID && }
- {FACEBOOK_APP_ID && FACEBOOK_PAGE_ID && }
- {FIREWORKS && }
- {SAKURA && }
- {STARRY_SKY && }
- {MUSIC_PLAYER && }
- {NEST && }
- {FLUTTERINGRIBBON && }
- {COMMENT_TWIKOO_COUNT_ENABLE && }
- {RIBBON && }
- {DIFY_CHATBOT_ENABLED && }
- {CUSTOM_RIGHT_CLICK_CONTEXT_MENU && }
- {!CAN_COPY && }
- {WEB_WHIZ_ENABLED && }
- {AD_WWADS_BLOCK_DETECT && }
- {TIANLI_KEY && }
-
-
-
- {ANALYTICS_51LA_ID && ANALYTICS_51LA_CK && }
-
- {ANALYTICS_51LA_ID && ANALYTICS_51LA_CK && (<>
-
- {/* }
+ {AD_WWADS_ID && (
+
+ )}
- {COMMENT_TWIKOO_ENV_ID && }
+ {COMMENT_TWIKOO_ENV_ID && }
- {COMMENT_ARTALK_SERVER && }
+ {COMMENT_ARTALK_SERVER && }
- {COMMENT_TIDIO_ID && }
+ {COMMENT_TIDIO_ID && (
+
+ )}
- {/* gitter聊天室 */}
- {COMMENT_GITTER_ROOM && (<>
-
-