mirror of
https://github.com/d0zingcat/NotionNext.git
synced 2026-06-06 15:10:29 +00:00
Merge branch 'tangly1024:main' into main
This commit is contained in:
@@ -1,2 +1,2 @@
|
|||||||
# 环境变量 @see https://www.nextjs.cn/docs/basic-features/environment-variables
|
# 环境变量 @see https://www.nextjs.cn/docs/basic-features/environment-variables
|
||||||
NEXT_PUBLIC_VERSION=3.8.2
|
NEXT_PUBLIC_VERSION=3.9.0
|
||||||
|
|||||||
@@ -30,6 +30,10 @@ const BLOG = {
|
|||||||
CUSTOM_FONT_SANS: ['LXGW WenKai'], // 自定义无衬线字体
|
CUSTOM_FONT_SANS: ['LXGW WenKai'], // 自定义无衬线字体
|
||||||
CUSTOM_FONT_SERIF: ['LXGW WenKai'], // 自定义衬线字体
|
CUSTOM_FONT_SERIF: ['LXGW WenKai'], // 自定义衬线字体
|
||||||
|
|
||||||
|
// 自定义外部脚本,外部样式
|
||||||
|
CUSTOM_EXTERNAL_JS: [''], // e.g. ['http://xx.com/script.js','http://xx.com/script.js']
|
||||||
|
CUSTOM_EXTERNAL_CSS: [''], // e.g. ['http://xx.com/style.css','http://xx.com/style.css']
|
||||||
|
|
||||||
// 侧栏布局 是否反转(左变右,右变左) 已支持主题: hexo next medium fukasawa example
|
// 侧栏布局 是否反转(左变右,右变左) 已支持主题: hexo next medium fukasawa example
|
||||||
LAYOUT_SIDEBAR_REVERSE: false,
|
LAYOUT_SIDEBAR_REVERSE: false,
|
||||||
|
|
||||||
|
|||||||
25
components/ExternalScript.js
Normal file
25
components/ExternalScript.js
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
import BLOG from '@/blog.config'
|
||||||
|
import { loadExternalResource } from '@/lib/utils'
|
||||||
|
import React from 'react'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 自定义引入外部JS 和 CSS
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
const ExternalScript = () => {
|
||||||
|
React.useEffect(() => {
|
||||||
|
if (BLOG.CUSTOM_EXTERNAL_JS && BLOG.CUSTOM_EXTERNAL_JS.length > 0) {
|
||||||
|
for (const url of BLOG.CUSTOM_EXTERNAL_JS) {
|
||||||
|
loadExternalResource(url, 'js')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (BLOG.CUSTOM_EXTERNAL_CSS && BLOG.CUSTOM_EXTERNAL_CSS.length > 0) {
|
||||||
|
for (const url of BLOG.CUSTOM_EXTERNAL_CSS) {
|
||||||
|
loadExternalResource(url, 'css')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, [])
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
|
export default ExternalScript
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "notion-next",
|
"name": "notion-next",
|
||||||
"version": "3.8.2",
|
"version": "3.9.0",
|
||||||
"homepage": "https://github.com/tangly1024/NotionNext.git",
|
"homepage": "https://github.com/tangly1024/NotionNext.git",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ import { Ribbon } from '@/components/Ribbon'
|
|||||||
import { Sakura } from '@/components/Sakura'
|
import { Sakura } from '@/components/Sakura'
|
||||||
import { StarrySky } from '@/components/StarrySky'
|
import { StarrySky } from '@/components/StarrySky'
|
||||||
import MusicPlayer from '@/components/MusicPlayer'
|
import MusicPlayer from '@/components/MusicPlayer'
|
||||||
|
import ExternalScript from '@/components/ExternalScript'
|
||||||
|
|
||||||
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 })
|
||||||
@@ -59,6 +60,7 @@ const MyApp = ({ Component, pageProps }) => {
|
|||||||
{JSON.parse(BLOG.NEST) && <Nest />}
|
{JSON.parse(BLOG.NEST) && <Nest />}
|
||||||
{JSON.parse(BLOG.FLUTTERINGRIBBON) && <FlutteringRibbon />}
|
{JSON.parse(BLOG.FLUTTERINGRIBBON) && <FlutteringRibbon />}
|
||||||
{JSON.parse(BLOG.RIBBON) && <Ribbon />}
|
{JSON.parse(BLOG.RIBBON) && <Ribbon />}
|
||||||
|
<ExternalScript/>
|
||||||
</>
|
</>
|
||||||
|
|
||||||
// 默认Webfont: 请在font.js文件中检查font-family 新版改从npm本地导入;
|
// 默认Webfont: 请在font.js文件中检查font-family 新版改从npm本地导入;
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ class MyDocument extends Document {
|
|||||||
<Html lang={BLOG.LANG} className='test'>
|
<Html lang={BLOG.LANG} className='test'>
|
||||||
<Head>
|
<Head>
|
||||||
<link rel='icon' href='/favicon.ico' />
|
<link rel='icon' href='/favicon.ico' />
|
||||||
<link rel='icon' href='/favicon.svg' type='image/svg+xml' />
|
|
||||||
<CommonScript />
|
<CommonScript />
|
||||||
</Head>
|
</Head>
|
||||||
|
|
||||||
|
|||||||
@@ -700,6 +700,10 @@ svg.notion-page-icon {
|
|||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.notion-asset-wrapper-image > div {
|
||||||
|
height: auto !important;
|
||||||
|
}
|
||||||
|
|
||||||
.notion-asset-wrapper-full {
|
.notion-asset-wrapper-full {
|
||||||
/* max-width: 100vw; */
|
/* max-width: 100vw; */
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,7 +15,6 @@ const Header = props => {
|
|||||||
const [typed, changeType] = useState()
|
const [typed, changeType] = useState()
|
||||||
const { siteInfo } = props
|
const { siteInfo } = props
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
scrollTrigger()
|
|
||||||
updateHeaderHeight()
|
updateHeaderHeight()
|
||||||
if (!typed && window && document.getElementById('typed')) {
|
if (!typed && window && document.getElementById('typed')) {
|
||||||
changeType(
|
changeType(
|
||||||
@@ -29,45 +28,20 @@ const Header = props => {
|
|||||||
})
|
})
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
window.addEventListener('scroll', scrollTrigger)
|
if (enableAutoScroll) {
|
||||||
|
scrollTrigger()
|
||||||
|
window.addEventListener('scroll', scrollTrigger)
|
||||||
|
}
|
||||||
|
|
||||||
window.addEventListener('resize', updateHeaderHeight)
|
window.addEventListener('resize', updateHeaderHeight)
|
||||||
return () => {
|
return () => {
|
||||||
window.removeEventListener('scroll', scrollTrigger)
|
if (enableAutoScroll) {
|
||||||
|
window.removeEventListener('scroll', scrollTrigger)
|
||||||
|
}
|
||||||
window.removeEventListener('resize', updateHeaderHeight)
|
window.removeEventListener('resize', updateHeaderHeight)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
const autoScrollEnd = () => {
|
|
||||||
if (autoScroll) {
|
|
||||||
windowTop = window.scrollY
|
|
||||||
autoScroll = false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 自动吸附滚动,移动端体验不好暂时关闭
|
|
||||||
*/
|
|
||||||
const scrollTrigger = () => {
|
|
||||||
if (screen.width <= 768) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
const scrollS = window.scrollY
|
|
||||||
// 自动滚动
|
|
||||||
if ((scrollS > windowTop) & (scrollS < window.innerHeight) && !autoScroll
|
|
||||||
) {
|
|
||||||
autoScroll = true
|
|
||||||
window.scrollTo({ top: wrapperTop, behavior: 'smooth' })
|
|
||||||
setTimeout(autoScrollEnd, 500)
|
|
||||||
}
|
|
||||||
if ((scrollS < windowTop) && (scrollS < window.innerHeight) && !autoScroll) {
|
|
||||||
autoScroll = true
|
|
||||||
window.scrollTo({ top: 0, behavior: 'smooth' })
|
|
||||||
setTimeout(autoScrollEnd, 500)
|
|
||||||
}
|
|
||||||
windowTop = scrollS
|
|
||||||
}
|
|
||||||
|
|
||||||
function updateHeaderHeight () {
|
function updateHeaderHeight () {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
const wrapperElement = document.getElementById('wrapper')
|
const wrapperElement = document.getElementById('wrapper')
|
||||||
@@ -106,4 +80,37 @@ const Header = props => {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const enableAutoScroll = false // 是否开启自动吸附滚动
|
||||||
|
|
||||||
|
const autoScrollEnd = () => {
|
||||||
|
if (autoScroll) {
|
||||||
|
windowTop = window.scrollY
|
||||||
|
autoScroll = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 自动吸附滚动,移动端体验不好暂时关闭
|
||||||
|
*/
|
||||||
|
const scrollTrigger = () => {
|
||||||
|
if (screen.width <= 768) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
const scrollS = window.scrollY
|
||||||
|
// 自动滚动
|
||||||
|
if ((scrollS > windowTop) & (scrollS < window.innerHeight) && !autoScroll
|
||||||
|
) {
|
||||||
|
autoScroll = true
|
||||||
|
window.scrollTo({ top: wrapperTop, behavior: 'smooth' })
|
||||||
|
setTimeout(autoScrollEnd, 500)
|
||||||
|
}
|
||||||
|
if ((scrollS < windowTop) && (scrollS < window.innerHeight) && !autoScroll) {
|
||||||
|
autoScroll = true
|
||||||
|
window.scrollTo({ top: 0, behavior: 'smooth' })
|
||||||
|
setTimeout(autoScrollEnd, 500)
|
||||||
|
}
|
||||||
|
windowTop = scrollS
|
||||||
|
}
|
||||||
|
|
||||||
export default Header
|
export default Header
|
||||||
|
|||||||
Reference in New Issue
Block a user