Merge branch 'tangly1024:main' into main

This commit is contained in:
Vixcity
2023-02-01 16:00:29 +08:00
committed by GitHub
8 changed files with 78 additions and 37 deletions

View File

@@ -1,2 +1,2 @@
# 环境变量 @see https://www.nextjs.cn/docs/basic-features/environment-variables
NEXT_PUBLIC_VERSION=3.8.2
NEXT_PUBLIC_VERSION=3.9.0

View File

@@ -30,6 +30,10 @@ const BLOG = {
CUSTOM_FONT_SANS: ['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
LAYOUT_SIDEBAR_REVERSE: false,

View 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

View File

@@ -1,6 +1,6 @@
{
"name": "notion-next",
"version": "3.8.2",
"version": "3.9.0",
"homepage": "https://github.com/tangly1024/NotionNext.git",
"license": "MIT",
"repository": {

View File

@@ -31,6 +31,7 @@ import { Ribbon } from '@/components/Ribbon'
import { Sakura } from '@/components/Sakura'
import { StarrySky } from '@/components/StarrySky'
import MusicPlayer from '@/components/MusicPlayer'
import ExternalScript from '@/components/ExternalScript'
const Ackee = dynamic(() => import('@/components/Ackee'), { 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.FLUTTERINGRIBBON) && <FlutteringRibbon />}
{JSON.parse(BLOG.RIBBON) && <Ribbon />}
<ExternalScript/>
</>
// 默认Webfont: 请在font.js文件中检查font-family 新版改从npm本地导入

View File

@@ -14,7 +14,6 @@ class MyDocument extends Document {
<Html lang={BLOG.LANG} className='test'>
<Head>
<link rel='icon' href='/favicon.ico' />
<link rel='icon' href='/favicon.svg' type='image/svg+xml' />
<CommonScript />
</Head>

View File

@@ -700,6 +700,10 @@ svg.notion-page-icon {
max-width: 100%;
}
.notion-asset-wrapper-image > div {
height: auto !important;
}
.notion-asset-wrapper-full {
/* max-width: 100vw; */
}

View File

@@ -15,7 +15,6 @@ const Header = props => {
const [typed, changeType] = useState()
const { siteInfo } = props
useEffect(() => {
scrollTrigger()
updateHeaderHeight()
if (!typed && window && document.getElementById('typed')) {
changeType(
@@ -29,45 +28,20 @@ const Header = props => {
})
)
}
window.addEventListener('scroll', scrollTrigger)
if (enableAutoScroll) {
scrollTrigger()
window.addEventListener('scroll', scrollTrigger)
}
window.addEventListener('resize', updateHeaderHeight)
return () => {
window.removeEventListener('scroll', scrollTrigger)
if (enableAutoScroll) {
window.removeEventListener('scroll', scrollTrigger)
}
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 () {
setTimeout(() => {
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