mirror of
https://github.com/d0zingcat/NotionNext.git
synced 2026-06-02 07:26:45 +00:00
feature:
不蒜子调整
This commit is contained in:
17
components/Busuanzi.js
Normal file
17
components/Busuanzi.js
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
import busuanzi from '@/lib/busuanzi'
|
||||||
|
import { useRouter } from 'next/router'
|
||||||
|
import { useEffect } from 'react'
|
||||||
|
|
||||||
|
export default function Busuanzi () {
|
||||||
|
const router = useRouter()
|
||||||
|
useEffect(() => {
|
||||||
|
const busuanziRouteChange = url => {
|
||||||
|
busuanzi.fetch()
|
||||||
|
}
|
||||||
|
router.events.on('routeChangeComplete', busuanziRouteChange)
|
||||||
|
return () => {
|
||||||
|
router.events.off('routeChangeComplete', busuanziRouteChange)
|
||||||
|
}
|
||||||
|
}, [router.events])
|
||||||
|
return null
|
||||||
|
}
|
||||||
29
components/GoogleAdsense.js
Normal file
29
components/GoogleAdsense.js
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
import { useRouter } from 'next/router'
|
||||||
|
import { useEffect } from 'react'
|
||||||
|
|
||||||
|
export default function GoogleAdsense () {
|
||||||
|
const initGoogleAdsense = () => {
|
||||||
|
const ads = document.getElementsByClassName('adsbygoogle').length
|
||||||
|
const newAdsCount = ads
|
||||||
|
if (newAdsCount > 0) {
|
||||||
|
for (let i = 0; i <= newAdsCount; i++) {
|
||||||
|
try {
|
||||||
|
// eslint-disable-next-line no-undef
|
||||||
|
(adsbygoogle = window.adsbygoogle || []).push({})
|
||||||
|
} catch (e) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const router = useRouter()
|
||||||
|
useEffect(() => {
|
||||||
|
initGoogleAdsense()
|
||||||
|
router.events.on('routeChangeComplete', initGoogleAdsense)
|
||||||
|
return () => {
|
||||||
|
router.events.off('routeChangeComplete', initGoogleAdsense)
|
||||||
|
}
|
||||||
|
}, [router.events])
|
||||||
|
return null
|
||||||
|
}
|
||||||
@@ -5,12 +5,12 @@ import * as gtag from '@/lib/gtag'
|
|||||||
const Gtag = () => {
|
const Gtag = () => {
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const handleRouteChange = url => {
|
const gtagRouteChange = url => {
|
||||||
gtag.pageview(url)
|
gtag.pageview(url)
|
||||||
}
|
}
|
||||||
router.events.on('routeChangeComplete', handleRouteChange)
|
router.events.on('routeChangeComplete', gtagRouteChange)
|
||||||
return () => {
|
return () => {
|
||||||
router.events.off('routeChangeComplete', handleRouteChange)
|
router.events.off('routeChangeComplete', gtagRouteChange)
|
||||||
}
|
}
|
||||||
}, [router.events])
|
}, [router.events])
|
||||||
return null
|
return null
|
||||||
|
|||||||
@@ -37,6 +37,13 @@ const ThirdPartyScript = () => {
|
|||||||
/>
|
/>
|
||||||
</>)}
|
</>)}
|
||||||
|
|
||||||
|
{/* 不蒜子
|
||||||
|
{BLOG.analytics.busuanzi && (
|
||||||
|
<script async
|
||||||
|
src={'//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js'}
|
||||||
|
/>
|
||||||
|
)} */}
|
||||||
|
|
||||||
{/* 代码统计 */}
|
{/* 代码统计 */}
|
||||||
{BLOG.isProd && (<>
|
{BLOG.isProd && (<>
|
||||||
|
|
||||||
@@ -63,12 +70,6 @@ const ThirdPartyScript = () => {
|
|||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
{/* 不蒜子 */}
|
|
||||||
{BLOG.analytics.busuanzi && (
|
|
||||||
<script async
|
|
||||||
src={'//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js'}
|
|
||||||
/>
|
|
||||||
)}
|
|
||||||
|
|
||||||
{/* 站长统计 */}
|
{/* 站长统计 */}
|
||||||
{BLOG.analytics.cnzzAnalytics && (
|
{BLOG.analytics.cnzzAnalytics && (
|
||||||
|
|||||||
92
lib/busuanzi.js
Normal file
92
lib/busuanzi.js
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
/* eslint-disable */
|
||||||
|
let bszCaller, bszTag, scriptTag, ready
|
||||||
|
|
||||||
|
let t; let e; let n; let a = !1
|
||||||
|
let c = []
|
||||||
|
|
||||||
|
// 修复Node同构代码的问题
|
||||||
|
if (typeof document !== 'undefined') {
|
||||||
|
ready = function (t) {
|
||||||
|
return a || document.readyState === 'interactive' || document.readyState === 'complete'
|
||||||
|
? t.call(document)
|
||||||
|
: c.push(function () {
|
||||||
|
return t.call(this)
|
||||||
|
}), this
|
||||||
|
}, e = function () {
|
||||||
|
for (let t = 0, e = c.length; t < e; t++) c[t].apply(document)
|
||||||
|
c = []
|
||||||
|
}, n = function () {
|
||||||
|
a || (a = !0, e.call(window),
|
||||||
|
document.removeEventListener ? document.removeEventListener('DOMContentLoaded', n, !1) : document.attachEvent && (document.detachEvent('onreadystatechange', n), window == window.top && (clearInterval(t), t = null)))
|
||||||
|
}, document.addEventListener
|
||||||
|
? document.addEventListener('DOMContentLoaded', n, !1)
|
||||||
|
: document.attachEvent && (document.attachEvent('onreadystatechange', function () {
|
||||||
|
/loaded|complete/.test(document.readyState) && n()
|
||||||
|
}), window == window.top && (t = setInterval(function () {
|
||||||
|
try {
|
||||||
|
a || document.documentElement.doScroll('left')
|
||||||
|
} catch (t) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
n()
|
||||||
|
}, 5)))
|
||||||
|
}
|
||||||
|
|
||||||
|
bszCaller = {
|
||||||
|
fetch: function (t, e) {
|
||||||
|
const n = 'BusuanziCallback_' + Math.floor(1099511627776 * Math.random())
|
||||||
|
t = t.replace('=BusuanziCallback', '=' + n)
|
||||||
|
scriptTag = document.createElement('SCRIPT'), scriptTag.type = 'text/javascript', scriptTag.defer = !0, scriptTag.src = t, scriptTag.referrerPolicy = "no-referrer-when-downgrade", document.getElementsByTagName('HEAD')[0].appendChild(scriptTag)
|
||||||
|
window[n] = this.evalCall(e)
|
||||||
|
},
|
||||||
|
evalCall: function (e) {
|
||||||
|
return function (t) {
|
||||||
|
ready(function () {
|
||||||
|
try {
|
||||||
|
e(t), scriptTag && scriptTag.parentElement && scriptTag.parentElement.removeChild && scriptTag.parentElement.removeChild(scriptTag)
|
||||||
|
} catch (t) {
|
||||||
|
console.log(t), bszTag.hides()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const fetch = () => {
|
||||||
|
bszTag && bszTag.hides()
|
||||||
|
bszCaller.fetch('//busuanzi.ibruce.info/busuanzi?jsonpCallback=BusuanziCallback', function (t) {
|
||||||
|
// console.log('不蒜子请求结果',t)
|
||||||
|
bszTag.texts(t), bszTag.shows()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
bszTag = {
|
||||||
|
bszs: ['site_pv', 'page_pv', 'site_uv'],
|
||||||
|
texts: function (n) {
|
||||||
|
this.bszs.map(function (t) {
|
||||||
|
const e = document.getElementById('busuanzi_value_' + t)
|
||||||
|
e && (e.innerHTML = n[t])
|
||||||
|
})
|
||||||
|
},
|
||||||
|
hides: function () {
|
||||||
|
this.bszs.map(function (t) {
|
||||||
|
const e = document.getElementById('busuanzi_container_' + t)
|
||||||
|
e && (e.style.display = 'none')
|
||||||
|
})
|
||||||
|
},
|
||||||
|
shows: function () {
|
||||||
|
this.bszs.map(function (t) {
|
||||||
|
const e = document.getElementById('busuanzi_container_' + t)
|
||||||
|
e && (e.style.display = 'inline')
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修复Node同构代码的问题
|
||||||
|
if (typeof document !== 'undefined') {
|
||||||
|
fetch()
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
fetch
|
||||||
|
}
|
||||||
@@ -2,7 +2,6 @@ import lang from './lang'
|
|||||||
import { useContext, createContext, useState, useEffect } from 'react'
|
import { useContext, createContext, useState, useEffect } from 'react'
|
||||||
import cookie from 'react-cookies'
|
import cookie from 'react-cookies'
|
||||||
import Router from 'next/router'
|
import Router from 'next/router'
|
||||||
|
|
||||||
const GlobalContext = createContext()
|
const GlobalContext = createContext()
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -104,28 +103,6 @@ const initTheme = (theme, changeTheme) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function handleRouteChange (url) {
|
|
||||||
initGoogleAdsense()
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 初始化谷歌广告
|
|
||||||
*/
|
|
||||||
function initGoogleAdsense () {
|
|
||||||
const ads = document.getElementsByClassName('adsbygoogle').length
|
|
||||||
const newAdsCount = ads
|
|
||||||
if (newAdsCount > 0) {
|
|
||||||
for (let i = 0; i <= newAdsCount; i++) {
|
|
||||||
try {
|
|
||||||
// eslint-disable-next-line no-undef
|
|
||||||
(adsbygoogle = window.adsbygoogle || []).push({})
|
|
||||||
} catch (e) {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 读取默认主题
|
* 读取默认主题
|
||||||
* @returns {*}
|
* @returns {*}
|
||||||
|
|||||||
@@ -6,29 +6,17 @@ import 'rc-dropdown/assets/index.css'
|
|||||||
import 'prismjs/themes/prism-okaidia.css'
|
import 'prismjs/themes/prism-okaidia.css'
|
||||||
import 'katex/dist/katex.min.css'
|
import 'katex/dist/katex.min.css'
|
||||||
import dynamic from 'next/dynamic'
|
import dynamic from 'next/dynamic'
|
||||||
import { GlobalContextProvider, handleRouteChange } from '@/lib/global'
|
import { GlobalContextProvider } from '@/lib/global'
|
||||||
import { useEffect } from 'react'
|
|
||||||
import { useRouter } from 'next/router'
|
|
||||||
import { config } from '@fortawesome/fontawesome-svg-core'
|
import { config } from '@fortawesome/fontawesome-svg-core'
|
||||||
import '@fortawesome/fontawesome-svg-core/styles.css'
|
import '@fortawesome/fontawesome-svg-core/styles.css'
|
||||||
config.autoAddCss = false
|
config.autoAddCss = false
|
||||||
|
|
||||||
const Ackee = dynamic(() => import('@/components/Ackee'), { ssr: false })
|
const Ackee = dynamic(() => import('@/components/Ackee'), { ssr: false })
|
||||||
const Gtag = dynamic(() => import('@/components/Gtag'), { 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 MyApp = ({ Component, pageProps }) => {
|
const MyApp = ({ Component, pageProps }) => {
|
||||||
// 全局监听路由变化
|
|
||||||
const router = useRouter()
|
|
||||||
useEffect(() => {
|
|
||||||
handleRouteChange(router.pathname)
|
|
||||||
const routerListener = (url) => {
|
|
||||||
handleRouteChange(url)
|
|
||||||
}
|
|
||||||
router.events.on('routeChangeComplete', routerListener)
|
|
||||||
return () => {
|
|
||||||
router.events.off('routeChangeComplete', routerListener)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
return (
|
return (
|
||||||
<GlobalContextProvider>
|
<GlobalContextProvider>
|
||||||
{BLOG.isProd && BLOG?.analytics?.provider === 'ackee' && (
|
{BLOG.isProd && BLOG?.analytics?.provider === 'ackee' && (
|
||||||
@@ -38,6 +26,8 @@ const MyApp = ({ Component, pageProps }) => {
|
|||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
{BLOG.isProd && BLOG?.analytics?.provider === 'ga' && <Gtag />}
|
{BLOG.isProd && BLOG?.analytics?.provider === 'ga' && <Gtag />}
|
||||||
|
{BLOG.analytics.busuanzi && <Busuanzi/>}
|
||||||
|
{BLOG.googleAdsenseId && <GoogleAdsense/>}
|
||||||
<Component {...pageProps} />
|
<Component {...pageProps} />
|
||||||
</GlobalContextProvider>
|
</GlobalContextProvider>
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user