forked from tangly1024/NotionNext
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' of https://github.com/tangly1024/NotionNext
Showing
15 changed files
with
311 additions
and
77 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
21 changes: 14 additions & 7 deletions
21
...es/hexo/components/JumpToCommentButton.js → ...es/hexo/components/ButtonJumpToComment.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,29 +1,36 @@ | ||
import CONFIG from '../config' | ||
import { siteConfig } from '@/lib/config' | ||
import CONFIG from '../config' | ||
|
||
/** | ||
* 跳转到评论区 | ||
* @returns {JSX.Element} | ||
* @constructor | ||
*/ | ||
const JumpToCommentButton = () => { | ||
const ButtonJumpToComment = () => { | ||
if (!siteConfig('HEXO_WIDGET_TO_COMMENT', null, CONFIG)) { | ||
return <></> | ||
} | ||
|
||
function navToComment() { | ||
if (document.getElementById('comment')) { | ||
window.scrollTo({ top: document.getElementById('comment').offsetTop, behavior: 'smooth' }) | ||
window.scrollTo({ | ||
top: document.getElementById('comment').offsetTop, | ||
behavior: 'smooth' | ||
}) | ||
} | ||
// 兼容性不好 | ||
// const commentElement = document.getElementById('comment') | ||
// if (commentElement) { | ||
// commentElement?.scrollIntoView({ behavior: 'smooth', block: 'start', inline: 'nearest' }) | ||
} | ||
|
||
return (<div className='flex space-x-1 items-center justify-center transform hover:scale-105 duration-200 w-7 h-7 text-center' onClick={navToComment} > | ||
<i className='fas fa-comment text-xs' /> | ||
</div>) | ||
return ( | ||
<div | ||
className='flex space-x-1 items-center justify-center transform hover:scale-105 duration-200 w-7 h-7 text-center' | ||
onClick={navToComment}> | ||
<i className='fas fa-comment text-xs' /> | ||
</div> | ||
) | ||
} | ||
|
||
export default JumpToCommentButton | ||
export default ButtonJumpToComment |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
import { siteConfig } from '@/lib/config' | ||
import { useGlobal } from '@/lib/global' | ||
import { useRouter } from 'next/router' | ||
|
||
/** | ||
* 随机跳转到一个文章 | ||
*/ | ||
export default function ButtonRandomPost(props) { | ||
const { latestPosts } = props | ||
const router = useRouter() | ||
const { locale } = useGlobal() | ||
/** | ||
* 随机跳转文章 | ||
*/ | ||
function handleClick() { | ||
const randomIndex = Math.floor(Math.random() * latestPosts.length) | ||
const randomPost = latestPosts[randomIndex] | ||
router.push(`${siteConfig('SUB_PATH', '')}/${randomPost?.slug}`) | ||
} | ||
|
||
return ( | ||
<div | ||
title={locale.MENU.WALK_AROUND} | ||
className='cursor-pointer hover:bg-black hover:bg-opacity-10 rounded-full w-10 h-10 flex justify-center items-center duration-200 transition-all' | ||
onClick={handleClick}> | ||
<i className='fa-solid fa-podcast'></i> | ||
</div> | ||
) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
import { siteConfig } from '@/lib/config' | ||
import { useGlobal } from '@/lib/global' | ||
import { useRouter } from 'next/router' | ||
|
||
/** | ||
* 随机跳转到一个文章 | ||
*/ | ||
export default function ButtonRandomPostMini(props) { | ||
const { latestPosts } = props | ||
const router = useRouter() | ||
const { locale } = useGlobal() | ||
/** | ||
* 随机跳转文章 | ||
*/ | ||
function handleClick() { | ||
const randomIndex = Math.floor(Math.random() * latestPosts.length) | ||
const randomPost = latestPosts[randomIndex] | ||
router.push(`${siteConfig('SUB_PATH', '')}/${randomPost?.slug}`) | ||
} | ||
|
||
return ( | ||
<div | ||
title={locale.MENU.WALK_AROUND} | ||
className='flex space-x-1 items-center justify-center transform hover:scale-105 duration-200 w-7 h-7 text-center' | ||
onClick={handleClick}> | ||
<i className='fa-solid fa-podcast'></i> | ||
</div> | ||
) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,44 +1,179 @@ | ||
import QrCode from '@/components/QrCode' | ||
import { siteConfig } from '@/lib/config' | ||
import { useState } from 'react' | ||
|
||
/** | ||
* 社交联系方式按钮组 | ||
* @returns {JSX.Element} | ||
* @constructor | ||
*/ | ||
const SocialButton = () => { | ||
return <div className='w-full justify-center flex-wrap flex'> | ||
<div className='space-x-3 text-xl text-gray-600 dark:text-gray-300 '> | ||
{siteConfig('CONTACT_GITHUB') && <a target='_blank' rel='noreferrer' title={'github'} href={siteConfig('CONTACT_GITHUB')} > | ||
<i className='transform hover:scale-125 duration-150 fab fa-github dark:hover:text-indigo-400 hover:text-indigo-600'/> | ||
</a>} | ||
{siteConfig('CONTACT_TWITTER') && <a target='_blank' rel='noreferrer' title={'twitter'} href={siteConfig('CONTACT_TWITTER')} > | ||
<i className='transform hover:scale-125 duration-150 fab fa-twitter dark:hover:text-indigo-400 hover:text-indigo-600'/> | ||
</a>} | ||
{siteConfig('CONTACT_TELEGRAM') && <a target='_blank' rel='noreferrer' href={siteConfig('CONTACT_TELEGRAM')} title={'telegram'} > | ||
<i className='transform hover:scale-125 duration-150 fab fa-telegram dark:hover:text-indigo-400 hover:text-indigo-600'/> | ||
</a>} | ||
{siteConfig('CONTACT_LINKEDIN') && <a target='_blank' rel='noreferrer' href={siteConfig('CONTACT_LINKEDIN')} title={'linkIn'} > | ||
<i className='transform hover:scale-125 duration-150 fab fa-linkedin dark:hover:text-indigo-400 hover:text-indigo-600'/> | ||
</a>} | ||
{siteConfig('CONTACT_WEIBO') && <a target='_blank' rel='noreferrer' title={'weibo'} href={siteConfig('CONTACT_WEIBO')} > | ||
<i className='transform hover:scale-125 duration-150 fab fa-weibo dark:hover:text-indigo-400 hover:text-indigo-600'/> | ||
</a>} | ||
{siteConfig('CONTACT_INSTAGRAM') && <a target='_blank' rel='noreferrer' title={'instagram'} href={siteConfig('CONTACT_INSTAGRAM')} > | ||
<i className='transform hover:scale-125 duration-150 fab fa-instagram dark:hover:text-indigo-400 hover:text-indigo-600'/> | ||
</a>} | ||
{siteConfig('CONTACT_EMAIL') && <a target='_blank' rel='noreferrer' title={'email'} href={`mailto:${siteConfig('CONTACT_EMAIL')}`} > | ||
<i className='transform hover:scale-125 duration-150 fas fa-envelope dark:hover:text-indigo-400 hover:text-indigo-600'/> | ||
</a>} | ||
{JSON.parse(siteConfig('ENABLE_RSS')) && <a target='_blank' rel='noreferrer' title={'RSS'} href={'/feed'} > | ||
<i className='transform hover:scale-125 duration-150 fas fa-rss dark:hover:text-indigo-400 hover:text-indigo-600'/> | ||
</a>} | ||
{siteConfig('CONTACT_BILIBILI') && <a target='_blank' rel='noreferrer' title={'bilibili'} href={siteConfig('CONTACT_BILIBILI')} > | ||
<i className='transform hover:scale-125 duration-150 fab fa-bilibili dark:hover:text-indigo-400 hover:text-indigo-600'/> | ||
</a>} | ||
{siteConfig('CONTACT_YOUTUBE') && <a target='_blank' rel='noreferrer' title={'youtube'} href={siteConfig('CONTACT_YOUTUBE')} > | ||
<i className='transform hover:scale-125 duration-150 fab fa-youtube dark:hover:text-indigo-400 hover:text-indigo-600'/> | ||
</a>} | ||
const CONTACT_GITHUB = siteConfig('CONTACT_GITHUB') | ||
const CONTACT_TWITTER = siteConfig('CONTACT_TWITTER') | ||
const CONTACT_TELEGRAM = siteConfig('CONTACT_TELEGRAM') | ||
|
||
const CONTACT_LINKEDIN = siteConfig('CONTACT_LINKEDIN') | ||
const CONTACT_WEIBO = siteConfig('CONTACT_WEIBO') | ||
const CONTACT_INSTAGRAM = siteConfig('CONTACT_INSTAGRAM') | ||
const CONTACT_EMAIL = siteConfig('CONTACT_EMAIL') | ||
const ENABLE_RSS = siteConfig('ENABLE_RSS') | ||
const CONTACT_BILIBILI = siteConfig('CONTACT_BILIBILI') | ||
const CONTACT_YOUTUBE = siteConfig('CONTACT_YOUTUBE') | ||
|
||
const CONTACT_XIAOHONGSHU = siteConfig('CONTACT_XIAOHONGSHU') | ||
const CONTACT_ZHISHIXINGQIU = siteConfig('CONTACT_ZHISHIXINGQIU') | ||
const CONTACT_WEHCHAT_PUBLIC = siteConfig('CONTACT_WEHCHAT_PUBLIC') | ||
|
||
const [qrCodeShow, setQrCodeShow] = useState(false) | ||
|
||
const openPopover = () => { | ||
setQrCodeShow(true) | ||
} | ||
const closePopover = () => { | ||
setQrCodeShow(false) | ||
} | ||
return ( | ||
<div className='w-full justify-center flex-wrap flex'> | ||
<div className='space-x-3 text-xl flex items-center text-gray-600 dark:text-gray-300 '> | ||
{CONTACT_GITHUB && ( | ||
<a | ||
target='_blank' | ||
rel='noreferrer' | ||
title={'github'} | ||
href={CONTACT_GITHUB}> | ||
<i className='transform hover:scale-125 duration-150 fab fa-github dark:hover:text-indigo-400 hover:text-indigo-600' /> | ||
</a> | ||
)} | ||
{CONTACT_TWITTER && ( | ||
<a | ||
target='_blank' | ||
rel='noreferrer' | ||
title={'twitter'} | ||
href={CONTACT_TWITTER}> | ||
<i className='transform hover:scale-125 duration-150 fab fa-twitter dark:hover:text-indigo-400 hover:text-indigo-600' /> | ||
</a> | ||
)} | ||
{CONTACT_TELEGRAM && ( | ||
<a | ||
target='_blank' | ||
rel='noreferrer' | ||
href={CONTACT_TELEGRAM} | ||
title={'telegram'}> | ||
<i className='transform hover:scale-125 duration-150 fab fa-telegram dark:hover:text-indigo-400 hover:text-indigo-600' /> | ||
</a> | ||
)} | ||
{CONTACT_LINKEDIN && ( | ||
<a | ||
target='_blank' | ||
rel='noreferrer' | ||
href={CONTACT_LINKEDIN} | ||
title={'linkIn'}> | ||
<i className='transform hover:scale-125 duration-150 fab fa-linkedin dark:hover:text-indigo-400 hover:text-indigo-600' /> | ||
</a> | ||
)} | ||
{CONTACT_WEIBO && ( | ||
<a | ||
target='_blank' | ||
rel='noreferrer' | ||
title={'weibo'} | ||
href={CONTACT_WEIBO}> | ||
<i className='transform hover:scale-125 duration-150 fab fa-weibo dark:hover:text-indigo-400 hover:text-indigo-600' /> | ||
</a> | ||
)} | ||
{CONTACT_INSTAGRAM && ( | ||
<a | ||
target='_blank' | ||
rel='noreferrer' | ||
title={'instagram'} | ||
href={CONTACT_INSTAGRAM}> | ||
<i className='transform hover:scale-125 duration-150 fab fa-instagram dark:hover:text-indigo-400 hover:text-indigo-600' /> | ||
</a> | ||
)} | ||
{CONTACT_EMAIL && ( | ||
<a | ||
target='_blank' | ||
rel='noreferrer' | ||
title={'email'} | ||
href={`mailto:${CONTACT_EMAIL}`}> | ||
<i className='transform hover:scale-125 duration-150 fas fa-envelope dark:hover:text-indigo-400 hover:text-indigo-600' /> | ||
</a> | ||
)} | ||
{ENABLE_RSS && ( | ||
<a target='_blank' rel='noreferrer' title={'RSS'} href={'/feed'}> | ||
<i className='transform hover:scale-125 duration-150 fas fa-rss dark:hover:text-indigo-400 hover:text-indigo-600' /> | ||
</a> | ||
)} | ||
{CONTACT_BILIBILI && ( | ||
<a | ||
target='_blank' | ||
rel='noreferrer' | ||
title={'bilibili'} | ||
href={CONTACT_BILIBILI}> | ||
<i className='transform hover:scale-125 duration-150 dark:hover:text-indigo-400 hover:text-indigo-600 fab fa-bilibili' /> | ||
</a> | ||
)} | ||
{CONTACT_YOUTUBE && ( | ||
<a | ||
target='_blank' | ||
rel='noreferrer' | ||
title={'youtube'} | ||
href={CONTACT_YOUTUBE}> | ||
<i className='transform hover:scale-125 duration-150 fab fa-youtube dark:hover:text-indigo-400 hover:text-indigo-600' /> | ||
</a> | ||
)} | ||
{CONTACT_XIAOHONGSHU && ( | ||
<a | ||
target='_blank' | ||
rel='noreferrer' | ||
title={'小红书'} | ||
href={CONTACT_XIAOHONGSHU}> | ||
{/* eslint-disable-next-line @next/next/no-img-element */} | ||
<img | ||
className='transform hover:scale-125 duration-150 w-6' | ||
src='/svg/xiaohongshu.svg' | ||
alt='小红书' | ||
/> | ||
</a> | ||
)} | ||
{CONTACT_ZHISHIXINGQIU && ( | ||
<a | ||
target='_blank' | ||
rel='noreferrer' | ||
title={'知识星球'} | ||
href={CONTACT_ZHISHIXINGQIU}> | ||
{/* eslint-disable-next-line @next/next/no-img-element */} | ||
<img | ||
className='transform hover:scale-125 duration-150 w-6' | ||
src='/svg/zhishixingqiu.svg' | ||
alt='知识星球' | ||
/>{' '} | ||
</a> | ||
)} | ||
{CONTACT_WEHCHAT_PUBLIC && ( | ||
<button | ||
onMouseEnter={openPopover} | ||
onMouseLeave={closePopover} | ||
aria-label={'微信公众号'}> | ||
<div id='wechat-button'> | ||
<i className='transform scale-105 hover:scale-125 duration-150 fab fa-weixin dark:hover:text-indigo-400 hover:text-indigo-600' /> | ||
</div> | ||
{/* 二维码弹框 */} | ||
<div className='absolute'> | ||
<div | ||
id='pop' | ||
className={ | ||
(qrCodeShow ? 'opacity-100 ' : ' invisible opacity-0') + | ||
' z-40 absolute bottom-10 -left-10 bg-white shadow-xl transition-all duration-200 text-center' | ||
}> | ||
<div className='p-2 mt-1 w-28 h-28'> | ||
{qrCodeShow && <QrCode value={CONTACT_WEHCHAT_PUBLIC} />} | ||
</div> | ||
</div> | ||
</div> | ||
</button> | ||
)} | ||
</div> | ||
</div> | ||
</div> | ||
) | ||
} | ||
export default SocialButton |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters