import { siteConfig } from '@/lib/config' import dynamic from 'next/dynamic' 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 { mapPageUrl } from '@/lib/notion/mapPageUrl' import { isBrowser, loadExternalResource } from '@/lib/utils' import { useRouter } from 'next/router' import { useEffect } from 'react' import { initGoogleAdsense } from './GoogleAdsense' /** * 各种插件脚本 * @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') const IMG_SHADOW = siteConfig('IMG_SHADOW') const ANIMATE_CSS_URL = siteConfig('ANIMATE_CSS_URL') const MOUSE_FOLLOW = siteConfig('MOUSE_FOLLOW') // 自定义样式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 (ANIMATE_CSS_URL) { loadExternalResource(ANIMATE_CSS_URL, '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') } } } const router = useRouter() useEffect(() => { // 异步渲染谷歌广告 if (ADSENSE_GOOGLE_ID) { setTimeout(() => { initGoogleAdsense() }, 1000) } // 映射url mapPageUrl(props?.allNavPages) }, [router]) useEffect(() => { // 执行注入脚本 // eslint-disable-next-line no-eval eval(GLOBAL_JS) }, []) if (DISABLE_PLUGIN) { return null } return ( <> {/* 全局样式嵌入 */} {MOUSE_FOLLOW && } {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 && } {ANALYTICS_51LA_ID && ANALYTICS_51LA_CK && ( <> )} {/* {COMMENT_TWIKOO_ENV_ID &&