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 { CUSTOM_EXTERNAL_CSS, CUSTOM_EXTERNAL_JS, IMG_SHADOW } from '@/blog.config' import { isBrowser, loadExternalResource } from '@/lib/utils' 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 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 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 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 }) /** * 各种插件脚本 * @param {*} props * @returns */ const ExternalPlugin = (props) => { const DISABLE_PLUGIN = siteConfig('DISABLE_PLUGIN') const THEME_SWITCH = siteConfig('THEME_SWITCH') const DEBUG = siteConfig('DEBUG') const ANALYTICS_ACKEE_TRACKER = siteConfig('ANALYTICS_ACKEE_TRACKER') const ANALYTICS_VERCEL = siteConfig('ANALYTICS_VERCEL') const ANALYTICS_BUSUANZI_ENABLE = siteConfig('ANALYTICS_BUSUANZI_ENABLE') const ADSENSE_GOOGLE_ID = siteConfig('ADSENSE_GOOGLE_ID') const FACEBOOK_APP_ID = siteConfig('FACEBOOK_APP_ID') const FACEBOOK_PAGE_ID = siteConfig('FACEBOOK_PAGE_ID') const FIREWORKS = siteConfig('FIREWORKS') const SAKURA = siteConfig('SAKURA') const STARRY_SKY = siteConfig('STARRY_SKY') const MUSIC_PLAYER = siteConfig('MUSIC_PLAYER') const NEST = siteConfig('NEST') 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 CAN_COPY = siteConfig('CAN_COPY') const WEB_WHIZ_ENABLED = siteConfig('WEB_WHIZ_ENABLED') const AD_WWADS_BLOCK_DETECT = siteConfig('AD_WWADS_BLOCK_DETECT') const CHATBASE_ID = siteConfig('CHATBASE_ID') const COMMENT_DAO_VOICE_ID = siteConfig('COMMENT_DAO_VOICE_ID') const AD_WWADS_ID = siteConfig('AD_WWADS_ID') const COMMENT_TWIKOO_ENV_ID = siteConfig('COMMENT_TWIKOO_ENV_ID') const COMMENT_TWIKOO_CDN_URL = siteConfig('COMMENT_TWIKOO_CDN_URL') const COMMENT_ARTALK_SERVER = siteConfig('COMMENT_ARTALK_SERVER') const COMMENT_ARTALK_JS = siteConfig('COMMENT_ARTALK_JS') const COMMENT_TIDIO_ID = siteConfig('COMMENT_TIDIO_ID') const COMMENT_GITTER_ROOM = siteConfig('COMMENT_GITTER_ROOM') const ANALYTICS_BAIDU_ID = siteConfig('ANALYTICS_BAIDU_ID') const ANALYTICS_CNZZ_ID = siteConfig('ANALYTICS_CNZZ_ID') const ANALYTICS_GOOGLE_ID = siteConfig('ANALYTICS_GOOGLE_ID') const MATOMO_HOST_URL = siteConfig('MATOMO_HOST_URL') const MATOMO_SITE_ID = siteConfig('MATOMO_SITE_ID') const ANALYTICS_51LA_ID = siteConfig('ANALYTICS_51LA_ID') const ANALYTICS_51LA_CK = siteConfig('ANALYTICS_51LA_CK') const DIFY_CHATBOT_ENABLED = siteConfig('DIFY_CHATBOT_ENABLED') const TIANLI_KEY = siteConfig('TianliGPT_KEY') const GLOBAL_JS = siteConfig('GLOBAL_JS') const CLARITY_ID = siteConfig('CLARITY_ID') // 自定义样式css和js引入 if (isBrowser) { // 初始化AOS动画 // 静态导入本地自定义样式 loadExternalResource('/css/custom.css', 'css') loadExternalResource('/js/custom.js', 'js') // 自动添加图片阴影 if (IMG_SHADOW) { loadExternalResource('/css/img-shadow.css', 'css') } // 导入外部自定义脚本 if (CUSTOM_EXTERNAL_JS && CUSTOM_EXTERNAL_JS.length > 0) { for (const url of CUSTOM_EXTERNAL_JS) { loadExternalResource(url, 'js') } } // 导入外部自定义样式 if (CUSTOM_EXTERNAL_CSS && CUSTOM_EXTERNAL_CSS.length > 0) { for (const url of CUSTOM_EXTERNAL_CSS) { loadExternalResource(url, 'css') } } } if (DISABLE_PLUGIN) { return null } return <> {/* 全局样式嵌入 */} {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 && (<> } {COMMENT_TWIKOO_ENV_ID &&