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 &&