mirror of
https://github.com/d0zingcat/NotionNext.git
synced 2026-05-30 23:16:52 +00:00
@@ -1,5 +1,5 @@
|
||||
import { useGlobal } from '@/lib/global'
|
||||
import Link from 'next/link'
|
||||
import SmartLink from '@/components/SmartLink'
|
||||
import CONFIG from '../config'
|
||||
import { siteConfig } from '@/lib/config'
|
||||
import NotByAI from '@/components/NotByAI'
|
||||
@@ -14,9 +14,9 @@ export default function ArticleCopyright({ author, url }) {
|
||||
<ul className='overflow-x-auto whitespace-nowrap text-sm dark:bg-gray-700 bg-gray-100 p-5 leading-8 border-l-2 border-blue-500'>
|
||||
<li>
|
||||
<strong className='mr-2'>{locale.COMMON.AUTHOR}:</strong>
|
||||
<Link href={'/about'} className='hover:underline'>
|
||||
<SmartLink href={'/about'} className='hover:underline'>
|
||||
{author}
|
||||
</Link>
|
||||
</SmartLink>
|
||||
</li>
|
||||
<li>
|
||||
<strong className='mr-2'>{locale.COMMON.URL}:</strong>
|
||||
|
||||
@@ -7,7 +7,7 @@ import WWAds from '@/components/WWAds'
|
||||
import { siteConfig } from '@/lib/config'
|
||||
import { useGlobal } from '@/lib/global'
|
||||
import { formatDateFmt } from '@/lib/utils/formatDate'
|
||||
import Link from 'next/link'
|
||||
import SmartLink from '@/components/SmartLink'
|
||||
import { useRouter } from 'next/router'
|
||||
import CONFIG from '../config'
|
||||
import ArticleCopyright from './ArticleCopyright'
|
||||
@@ -69,7 +69,7 @@ export default function ArticleDetail(props) {
|
||||
<div className='flex flex-wrap justify-center'>
|
||||
{post?.type !== 'Page' && (
|
||||
<>
|
||||
<Link
|
||||
<SmartLink
|
||||
href={`/archive#${formatDateFmt(post?.publishDate, 'yyyy-MM')}`}
|
||||
passHref
|
||||
legacyBehavior>
|
||||
@@ -77,7 +77,7 @@ export default function ArticleDetail(props) {
|
||||
<i className='far fa-calendar mr-1' />{' '}
|
||||
{post?.publishDay}
|
||||
</div>
|
||||
</Link>
|
||||
</SmartLink>
|
||||
<span className='mr-2'>
|
||||
{' '}
|
||||
| <i className='far fa-calendar-check mr-2' />
|
||||
@@ -127,12 +127,12 @@ export default function ArticleDetail(props) {
|
||||
{post.category && (
|
||||
<>
|
||||
<div className='cursor-pointer my-auto text-md mr-2 hover:text-black dark:hover:text-white border-b dark:text-gray-500 border-dashed'>
|
||||
<Link href={`/category/${post.category}`} legacyBehavior>
|
||||
<SmartLink href={`/category/${post.category}`} legacyBehavior>
|
||||
<a>
|
||||
<i className='mr-1 far fa-folder-open' />{' '}
|
||||
{post.category}
|
||||
</a>
|
||||
</Link>
|
||||
</SmartLink>
|
||||
</div>
|
||||
</>
|
||||
)}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import Link from 'next/link'
|
||||
import SmartLink from '@/components/SmartLink'
|
||||
|
||||
/**
|
||||
* 上一篇,下一篇文章
|
||||
@@ -11,22 +11,22 @@ export default function BlogAround ({ prev, next }) {
|
||||
}
|
||||
return (
|
||||
<section className='text-gray-800 border-t dark:text-gray-300 flex flex-wrap lg:flex-nowrap lg:space-x-10 justify-between py-2'>
|
||||
{prev && <Link
|
||||
{prev && <SmartLink
|
||||
href={`/${prev.slug}`}
|
||||
passHref
|
||||
className='text-sm py-3 text-gray-500 hover:underline cursor-pointer'>
|
||||
|
||||
<i className='mr-1 fas fa-angle-double-left' />{prev.title}
|
||||
|
||||
</Link>}
|
||||
{next && <Link
|
||||
</SmartLink>}
|
||||
{next && <SmartLink
|
||||
href={`/${next.slug}`}
|
||||
passHref
|
||||
className='text-sm flex py-3 text-gray-500 hover:underline cursor-pointer'>
|
||||
{next.title}
|
||||
<i className='ml-1 my-1 fas fa-angle-double-right' />
|
||||
|
||||
</Link>}
|
||||
</SmartLink>}
|
||||
</section>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import Link from 'next/link'
|
||||
import SmartLink from '@/components/SmartLink'
|
||||
|
||||
/**
|
||||
* 博客归档列表
|
||||
@@ -27,12 +27,12 @@ const BlogPostArchive = ({ posts = [], archiveTitle }) => {
|
||||
<div id={post?.publishDay}>
|
||||
<span className='text-gray-500'>{post.date?.start_date}</span>{' '}
|
||||
|
||||
<Link
|
||||
<SmartLink
|
||||
href={post?.href}
|
||||
passHref
|
||||
className='dark:text-gray-400 dark:hover:text-gray-300 overflow-x-hidden hover:underline cursor-pointer text-gray-600'>
|
||||
{post.title}
|
||||
</Link>
|
||||
</SmartLink>
|
||||
</div>
|
||||
</li>
|
||||
)
|
||||
|
||||
@@ -5,7 +5,7 @@ import { siteConfig } from '@/lib/config'
|
||||
import { useGlobal } from '@/lib/global'
|
||||
import { formatDateFmt } from '@/lib/utils/formatDate'
|
||||
import Image from 'next/image'
|
||||
import Link from 'next/link'
|
||||
import SmartLink from '@/components/SmartLink'
|
||||
import CONFIG from '../config'
|
||||
import Card from './Card'
|
||||
import TagItemMini from './TagItemMini'
|
||||
@@ -32,7 +32,7 @@ const BlogPostCard = ({ post, index, showSummary }) => {
|
||||
className='flex flex-col-reverse justify-between duration-300'>
|
||||
<div className='lg:p-8 p-4 flex flex-col w-full'>
|
||||
{/* 文章标题 */}
|
||||
<Link
|
||||
<SmartLink
|
||||
{...aosProps}
|
||||
href={post?.href}
|
||||
passHref
|
||||
@@ -41,7 +41,7 @@ const BlogPostCard = ({ post, index, showSummary }) => {
|
||||
<NotionIcon icon={post.pageIcon} />
|
||||
)}{' '}
|
||||
<span className='menu-link'>{post.title}</span>
|
||||
</Link>
|
||||
</SmartLink>
|
||||
|
||||
<div
|
||||
{...aosProps}
|
||||
@@ -49,22 +49,22 @@ const BlogPostCard = ({ post, index, showSummary }) => {
|
||||
<div>
|
||||
{post.category && (
|
||||
<>
|
||||
<Link
|
||||
<SmartLink
|
||||
href={`/category/${post.category}`}
|
||||
passHref
|
||||
className='hover:text-blue-500 dark:hover:text-blue-400 cursor-pointer font-light text-sm transform'>
|
||||
<i className='mr-1 fas fa-folder' />
|
||||
<span className='menu-link'>{post.category}</span>
|
||||
</Link>
|
||||
</SmartLink>
|
||||
<span className='mx-2'>|</span>
|
||||
</>
|
||||
)}
|
||||
<Link
|
||||
<SmartLink
|
||||
href={`/archive#${formatDateFmt(post?.publishDate, 'yyyy-MM')}`}
|
||||
passHref
|
||||
className='hover:text-blue-500 dark:hover:text-blue-400 font-light cursor-pointer text-sm leading-4 mr-3'>
|
||||
<span className='menu-link'>{post.date?.start_date}</span>
|
||||
</Link>
|
||||
</SmartLink>
|
||||
</div>
|
||||
|
||||
<TwikooCommentCount
|
||||
@@ -103,18 +103,18 @@ const BlogPostCard = ({ post, index, showSummary }) => {
|
||||
)}
|
||||
|
||||
<div className='text-right border-t pt-8 border-dashed'>
|
||||
<Link
|
||||
<SmartLink
|
||||
href={post?.href}
|
||||
className='hover:bg-opacity-100 hover:underline transform duration-300 p-3 text-white bg-gray-800 cursor-pointer'>
|
||||
{locale.COMMON.ARTICLE_DETAIL}
|
||||
<i className='ml-1 fas fa-angle-right' />
|
||||
</Link>
|
||||
</SmartLink>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{siteConfig('NEXT_POST_LIST_COVER', null, CONFIG) &&
|
||||
post?.pageCoverThumbnail && (
|
||||
<Link href={post?.href} passHref legacyBehavior>
|
||||
<SmartLink href={post?.href} passHref legacyBehavior>
|
||||
<div className='h-72 w-full relative duration-200 cursor-pointer transform overflow-hidden'>
|
||||
<Image
|
||||
className='hover:scale-105 transform duration-500'
|
||||
@@ -125,7 +125,7 @@ const BlogPostCard = ({ post, index, showSummary }) => {
|
||||
loading='lazy'
|
||||
/>
|
||||
</div>
|
||||
</Link>
|
||||
</SmartLink>
|
||||
)}
|
||||
</div>
|
||||
</Card>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { siteConfig } from '@/lib/config'
|
||||
import Link from 'next/link'
|
||||
import SmartLink from '@/components/SmartLink'
|
||||
|
||||
const CategoryGroup = ({ currentCategory, categories }) => {
|
||||
if (!categories || categories.length === 0) return <></>
|
||||
@@ -11,7 +11,7 @@ const CategoryGroup = ({ currentCategory, categories }) => {
|
||||
{categoryOptions.map(category => {
|
||||
const selected = currentCategory === category.name
|
||||
return (
|
||||
<Link
|
||||
<SmartLink
|
||||
key={category.name}
|
||||
href={`/category/${category.name}`}
|
||||
passHref
|
||||
@@ -25,7 +25,7 @@ const CategoryGroup = ({ currentCategory, categories }) => {
|
||||
className={`${selected ? 'text-white fa-folder-open ' : 'text-gray-500 fa-folder '} mr-2 fas`}
|
||||
/>
|
||||
{category.name}({category.count})
|
||||
</Link>
|
||||
</SmartLink>
|
||||
)
|
||||
})}
|
||||
</div>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import Link from 'next/link'
|
||||
import SmartLink from '@/components/SmartLink'
|
||||
import { useGlobal } from '@/lib/global'
|
||||
|
||||
const CategoryList = ({ currentCategory, categoryOptions }) => {
|
||||
@@ -13,7 +13,7 @@ const CategoryList = ({ currentCategory, categoryOptions }) => {
|
||||
{categoryOptions?.map(category => {
|
||||
const selected = category.name === currentCategory
|
||||
return (
|
||||
<Link
|
||||
<SmartLink
|
||||
key={category.name}
|
||||
href={`/category/${category.name}`}
|
||||
passHref
|
||||
@@ -30,7 +30,7 @@ const CategoryList = ({ currentCategory, categoryOptions }) => {
|
||||
{`${category.name} (${category.count})`}
|
||||
</a>
|
||||
</li>
|
||||
</Link>
|
||||
</SmartLink>
|
||||
)
|
||||
})}
|
||||
</ul>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import Link from 'next/link'
|
||||
import SmartLink from '@/components/SmartLink'
|
||||
|
||||
/**
|
||||
* 悬浮在屏幕右下角,联系我的按钮
|
||||
@@ -7,7 +7,7 @@ import Link from 'next/link'
|
||||
*/
|
||||
const ContactButton = () => {
|
||||
return (
|
||||
(<Link
|
||||
(<SmartLink
|
||||
href='/about'
|
||||
className={'fixed right-10 bottom-40 animate__fadeInRight animate__animated animate__faster'}>
|
||||
|
||||
@@ -16,7 +16,7 @@ const ContactButton = () => {
|
||||
<i className='dark:text-gray-200 fas fa-info' title='about' />
|
||||
</span>
|
||||
|
||||
</Link>)
|
||||
</SmartLink>)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { siteConfig } from '@/lib/config'
|
||||
import { useGlobal } from '@/lib/global'
|
||||
import Link from 'next/link'
|
||||
import SmartLink from '@/components/SmartLink'
|
||||
import { useRouter } from 'next/router'
|
||||
|
||||
/**
|
||||
@@ -30,7 +30,7 @@ const LatestPostsGroup = ({ latestPosts }) => {
|
||||
const selected =
|
||||
currentPath === `${siteConfig('SUB_PATH', '')}/${post.slug}`
|
||||
return (
|
||||
<Link
|
||||
<SmartLink
|
||||
key={post.id}
|
||||
title={post.title}
|
||||
href={post?.href}
|
||||
@@ -46,7 +46,7 @@ const LatestPostsGroup = ({ latestPosts }) => {
|
||||
}>
|
||||
<li className='line-clamp-2'>{post.title}</li>
|
||||
</div>
|
||||
</Link>
|
||||
</SmartLink>
|
||||
)
|
||||
})}
|
||||
</>
|
||||
|
||||
@@ -7,7 +7,7 @@ export default function Live2DWife() {
|
||||
initLive2DWife()
|
||||
}, [])
|
||||
return <>
|
||||
<Head><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/font-awesome/css/font-awesome.min.css" /></Head>
|
||||
<Head><SmartLink rel="stylesheet" href="https://cdn.jsdelivr.net/npm/font-awesome/css/font-awesome.min.css" /></Head>
|
||||
</>
|
||||
}
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { siteConfig } from '@/lib/config'
|
||||
import Link from 'next/link'
|
||||
import SmartLink from '@/components/SmartLink'
|
||||
|
||||
const Logo = props => {
|
||||
const { className } = props
|
||||
return (
|
||||
<Link href='/' passHref legacyBehavior>
|
||||
<SmartLink href='/' passHref legacyBehavior>
|
||||
<div
|
||||
className={
|
||||
'flex flex-col justify-center items-center cursor-pointer bg-black dark:bg-gray-800 space-y-3 font-bold ' +
|
||||
@@ -30,7 +30,7 @@ const Logo = props => {
|
||||
{siteConfig('DESCRIPTION')}
|
||||
</div>
|
||||
</div>
|
||||
</Link>
|
||||
</SmartLink>
|
||||
)
|
||||
}
|
||||
export default Logo
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import Collapse from '@/components/Collapse'
|
||||
import Link from 'next/link'
|
||||
import SmartLink from '@/components/SmartLink'
|
||||
import { useState } from 'react'
|
||||
|
||||
/**
|
||||
@@ -28,7 +28,7 @@ export const MenuItemCollapse = props => {
|
||||
className='px-5 py-2 w-full text-left duration-200 hover:bg-gray-700 hover:text-white not:last-child:border-b-0 border-b dark:bg-hexo-black-gray dark:border-black'
|
||||
onClick={toggleShow}>
|
||||
{!hasSubMenu && (
|
||||
<Link
|
||||
<SmartLink
|
||||
href={link?.href}
|
||||
target={link?.target}
|
||||
className='w-full my-auto items-center justify-between flex dark:text-gray-200 '>
|
||||
@@ -36,7 +36,7 @@ export const MenuItemCollapse = props => {
|
||||
<div className={`${link.icon} text-center w-4 mr-4`} />
|
||||
{link.name}
|
||||
</div>
|
||||
</Link>
|
||||
</SmartLink>
|
||||
)}
|
||||
|
||||
{hasSubMenu && (
|
||||
@@ -65,7 +65,7 @@ export const MenuItemCollapse = props => {
|
||||
className='whitespace-nowrap dark:text-gray-200
|
||||
not:last-child:border-b-0 border-b dark:border-gray-800 py-2 px-14 cursor-pointer hover:bg-gray-100
|
||||
font-extralight dark:bg-black text-left justify-start text-gray-600 bg-gray-50 dark:hover:bg-gray-900 tracking-widest transition-all duration-200'>
|
||||
<Link href={sLink.href} target={link?.target}>
|
||||
<SmartLink href={sLink.href} target={link?.target}>
|
||||
<div>
|
||||
{sLink.icon && (
|
||||
<div
|
||||
@@ -74,7 +74,7 @@ export const MenuItemCollapse = props => {
|
||||
)}
|
||||
{sLink.title}
|
||||
</div>
|
||||
</Link>
|
||||
</SmartLink>
|
||||
</div>
|
||||
)
|
||||
})}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import Link from 'next/link'
|
||||
import SmartLink from '@/components/SmartLink'
|
||||
import { useState } from 'react'
|
||||
|
||||
export const MenuItemDrop = ({ link }) => {
|
||||
@@ -11,7 +11,7 @@ export const MenuItemDrop = ({ link }) => {
|
||||
onMouseOut={() => changeShow(false)}
|
||||
className='relative py-1.5 px-5 duration-300 text-base justify-between hover:bg-gray-700 hover:text-white hover:shadow-lg cursor-pointer font-light flex flex-nowrap items-center '>
|
||||
{!hasSubMenu && (
|
||||
<Link
|
||||
<SmartLink
|
||||
href={link?.href}
|
||||
target={link?.target}
|
||||
className='w-full my-auto items-center justify-between flex '>
|
||||
@@ -20,7 +20,7 @@ export const MenuItemDrop = ({ link }) => {
|
||||
{link.name}
|
||||
</div>
|
||||
{link.slot}
|
||||
</Link>
|
||||
</SmartLink>
|
||||
)}
|
||||
|
||||
{hasSubMenu && (
|
||||
@@ -46,7 +46,7 @@ export const MenuItemDrop = ({ link }) => {
|
||||
{link?.subMenus?.map(sLink => {
|
||||
return (
|
||||
<li key={sLink.id}>
|
||||
<Link
|
||||
<SmartLink
|
||||
href={sLink.href}
|
||||
target={link?.target}
|
||||
className='my-auto h-9 pl-4 items-center justify-start flex not:last-child:border-b-0 border-b text-gray-700 dark:text-gray-200 hover:bg-gray-50 dark:hover:bg-gray-900 tracking-widest transition-all duration-200 dark:border-gray-800 '>
|
||||
@@ -55,7 +55,7 @@ export const MenuItemDrop = ({ link }) => {
|
||||
)}
|
||||
{sLink.name}
|
||||
{sLink.slot}
|
||||
</Link>
|
||||
</SmartLink>
|
||||
</li>
|
||||
)
|
||||
})}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { useEffect, useState } from 'react'
|
||||
import Link from 'next/link'
|
||||
import SmartLink from '@/components/SmartLink'
|
||||
import { RecentComments } from '@waline/client'
|
||||
import { siteConfig } from '@/lib/config'
|
||||
|
||||
@@ -26,7 +26,7 @@ const NextRecentComments = (props) => {
|
||||
{!onLoading && comments && comments.length === 0 && <div>No Comments</div>}
|
||||
{!onLoading && comments && comments.length > 0 && comments.map((comment) => <div key={comment.objectId} className='pb-2'>
|
||||
<div className='dark:text-gray-300 text-gray-600 text-xs waline-recent-content wl-content' dangerouslySetInnerHTML={{ __html: comment.comment }} />
|
||||
<div className='dark:text-gray-400 text-gray-500 text-sm text-right cursor-pointer hover:text-red-500 hover:underline pt-1'><Link href={{ pathname: comment.url, hash: comment.objectId, query: { target: 'comment' } } }>--{comment.nick}</Link></div>
|
||||
<div className='dark:text-gray-400 text-gray-500 text-sm text-right cursor-pointer hover:text-red-500 hover:underline pt-1'><SmartLink href={{ pathname: comment.url, hash: comment.objectId, query: { target: 'comment' } } }>--{comment.nick}</SmartLink></div>
|
||||
</div>)}
|
||||
|
||||
</>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import Link from 'next/link'
|
||||
import SmartLink from '@/components/SmartLink'
|
||||
import { useRouter } from 'next/router'
|
||||
|
||||
/**
|
||||
@@ -28,7 +28,7 @@ const PaginationNumber = ({ page, totalPage }) => {
|
||||
data-aos-anchor-placement='top-bottom'
|
||||
className='mt-5 py-3 flex justify-center items-end font-medium text-black hover:shadow-xl duration-200 transition-all bg-white dark:bg-hexo-black-gray dark:text-gray-300 shadow space-x-2'>
|
||||
{/* 上一页 */}
|
||||
<Link
|
||||
<SmartLink
|
||||
href={{
|
||||
pathname:
|
||||
currentPage - 1 === 1
|
||||
@@ -45,12 +45,12 @@ const PaginationNumber = ({ page, totalPage }) => {
|
||||
} hover:border-t-2 border-white hover:border-gray-400 dark:hover:border-gray-400 w-8 h-8 justify-center flex items-center cursor-pointer duration-200 transition-all hover:font-bold`}>
|
||||
<i className='fas fa-angle-left' />
|
||||
</div>
|
||||
</Link>
|
||||
</SmartLink>
|
||||
|
||||
{pages}
|
||||
|
||||
{/* 下一页 */}
|
||||
<Link
|
||||
<SmartLink
|
||||
href={{
|
||||
pathname: `${pagePrefix}/page/${currentPage + 1}`,
|
||||
query: router.query.s ? { s: router.query.s } : {}
|
||||
@@ -64,7 +64,7 @@ const PaginationNumber = ({ page, totalPage }) => {
|
||||
} hover:border-t-2 border-white hover:border-gray-400 dark:hover:border-gray-400 w-8 h-8 justify-center flex items-center cursor-pointer duration-200 transition-all hover:font-bold`}>
|
||||
<i className='fas fa-angle-right' />
|
||||
</div>
|
||||
</Link>
|
||||
</SmartLink>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
@@ -129,7 +129,7 @@ function generatePages(pagePrefix, page, currentPage, totalPage) {
|
||||
*/
|
||||
function getPageElement(pagePrefix, page, currentPage) {
|
||||
return (
|
||||
<Link
|
||||
<SmartLink
|
||||
href={page === 1 ? `${pagePrefix}/` : `${pagePrefix}/page/${page}`}
|
||||
key={page}
|
||||
passHref
|
||||
@@ -140,7 +140,7 @@ function getPageElement(pagePrefix, page, currentPage) {
|
||||
' border-white dark:hover:border-gray-400 cursor-pointer w-8 h-8 justify-center flex items-center font-light hover:font-bold'
|
||||
}>
|
||||
{page}
|
||||
</Link>
|
||||
</SmartLink>
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import Link from 'next/link'
|
||||
import SmartLink from '@/components/SmartLink'
|
||||
import { useRouter } from 'next/router'
|
||||
import { useGlobal } from '@/lib/global'
|
||||
|
||||
@@ -22,7 +22,7 @@ const PaginationSimple = ({ page, showNext }) => {
|
||||
data-aos-once="false"
|
||||
data-aos-anchor-placement="top-bottom"
|
||||
className="my-10 flex justify-between font-medium text-black dark:text-gray-100 space-x-2">
|
||||
<Link
|
||||
<SmartLink
|
||||
href={{
|
||||
pathname:
|
||||
currentPage - 1 === 1
|
||||
@@ -40,8 +40,8 @@ const PaginationSimple = ({ page, showNext }) => {
|
||||
>
|
||||
← {locale.PAGINATION.PREV}
|
||||
</button>
|
||||
</Link>
|
||||
<Link
|
||||
</SmartLink>
|
||||
<SmartLink
|
||||
href={{
|
||||
pathname: `/page/${currentPage + 1}`,
|
||||
query: router.query.s ? { s: router.query.s } : {}
|
||||
@@ -56,7 +56,7 @@ const PaginationSimple = ({ page, showNext }) => {
|
||||
>
|
||||
{locale.PAGINATION.NEXT} →
|
||||
</button>
|
||||
</Link>
|
||||
</SmartLink>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import Link from 'next/link'
|
||||
import SmartLink from '@/components/SmartLink'
|
||||
import { useGlobal } from '@/lib/global'
|
||||
import CONFIG from '../config'
|
||||
import { siteConfig } from '@/lib/config'
|
||||
@@ -18,11 +18,11 @@ const RecommendPosts = ({ recommendPosts }) => {
|
||||
<ul className="font-light text-sm">
|
||||
{recommendPosts.map(post => (
|
||||
<li className="py-1" key={post.id}>
|
||||
<Link href={`/${post.slug}`} className="cursor-pointer hover:underline">
|
||||
<SmartLink href={`/${post.slug}`} className="cursor-pointer hover:underline">
|
||||
|
||||
{post.title}
|
||||
|
||||
</Link>
|
||||
</SmartLink>
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { useGlobal } from '@/lib/global'
|
||||
import Link from 'next/link'
|
||||
import SmartLink from '@/components/SmartLink'
|
||||
import Card from './Card'
|
||||
import CategoryGroup from './CategoryGroup'
|
||||
import TagGroups from './TagGroups'
|
||||
@@ -56,14 +56,14 @@ const SideAreaRight = (props) => {
|
||||
<Card>
|
||||
<div className='text-sm px-2 flex flex-nowrap justify-between font-light'>
|
||||
<div className='pb-2 text-gray-600 dark:text-gray-300'><i className='mr-2 fas fa-th-list' />{locale.COMMON.CATEGORY}</div>
|
||||
<Link
|
||||
<SmartLink
|
||||
href={'/category'}
|
||||
passHref
|
||||
className='text-gray-500 hover:text-black dark:text-gray-400 dark:hover:text-white hover:underline cursor-pointer'>
|
||||
|
||||
{locale.COMMON.MORE} <i className='fas fa-angle-double-right' />
|
||||
|
||||
</Link>
|
||||
</SmartLink>
|
||||
</div>
|
||||
<CategoryGroup currentCategory={currentCategory} categories={categoryOptions} />
|
||||
</Card>
|
||||
@@ -76,7 +76,7 @@ const SideAreaRight = (props) => {
|
||||
<i className="mr-2 fas fa-tag" />
|
||||
{locale.COMMON.TAGS}
|
||||
</div>
|
||||
<Link
|
||||
<SmartLink
|
||||
href={'/tag'}
|
||||
passHref
|
||||
className="text-gray-500 hover:text-black dark:hover:text-white hover:underline cursor-pointer">
|
||||
@@ -84,7 +84,7 @@ const SideAreaRight = (props) => {
|
||||
{locale.COMMON.MORE}{' '}
|
||||
<i className='fas fa-angle-double-right' />
|
||||
|
||||
</Link>
|
||||
</SmartLink>
|
||||
</div>
|
||||
<div className="px-2 pt-2">
|
||||
<TagGroups tags={tagOptions} currentTag={currentTag} />
|
||||
|
||||
@@ -2,7 +2,7 @@ import CategoryGroup from './CategoryGroup'
|
||||
import InfoCard from './InfoCard'
|
||||
import TagGroups from './TagGroups'
|
||||
import { useGlobal } from '@/lib/global'
|
||||
import Link from 'next/link'
|
||||
import SmartLink from '@/components/SmartLink'
|
||||
|
||||
/**
|
||||
* 侧边栏
|
||||
@@ -32,14 +32,14 @@ const SideBar = (props) => {
|
||||
<section className='mt-8'>
|
||||
<div className='text-sm px-5 flex flex-nowrap justify-between font-light'>
|
||||
<div className='text-gray-600 dark:text-gray-200'><i className='mr-2 fas fa-th-list' />{locale.COMMON.CATEGORY}</div>
|
||||
<Link
|
||||
<SmartLink
|
||||
href={'/category'}
|
||||
passHref
|
||||
className='mb-3 text-gray-500 hover:text-black dark:text-gray-400 dark:hover:text-white hover:underline cursor-pointer'>
|
||||
|
||||
{locale.COMMON.MORE} <i className='fas fa-angle-double-right'/>
|
||||
|
||||
</Link>
|
||||
</SmartLink>
|
||||
</div>
|
||||
<CategoryGroup currentCategory={currentCategory} categories={categories} />
|
||||
</section>
|
||||
@@ -50,14 +50,14 @@ const SideBar = (props) => {
|
||||
<section className='mt-4'>
|
||||
<div className='text-sm py-2 px-5 flex flex-nowrap justify-between font-light dark:text-gray-200'>
|
||||
<div className='text-gray-600 dark:text-gray-200'><i className='mr-2 fas fa-tag'/>{locale.COMMON.TAGS}</div>
|
||||
<Link
|
||||
<SmartLink
|
||||
href={'/tag'}
|
||||
passHref
|
||||
className='text-gray-500 hover:text-black dark:hover:text-white hover:underline cursor-pointer'>
|
||||
|
||||
{locale.COMMON.MORE} <i className='fas fa-angle-double-right'/>
|
||||
|
||||
</Link>
|
||||
</SmartLink>
|
||||
</div>
|
||||
<div className='px-5 py-2'>
|
||||
<TagGroups tags={tags} currentTag={currentTag} />
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import Link from 'next/link'
|
||||
import SmartLink from '@/components/SmartLink'
|
||||
import { useGlobal } from '@/lib/global'
|
||||
|
||||
const TagItem = ({ tag, selected }) => {
|
||||
@@ -7,7 +7,7 @@ const TagItem = ({ tag, selected }) => {
|
||||
<div> { locale.COMMON.NOTAG } </div>
|
||||
}
|
||||
return (
|
||||
<Link
|
||||
<SmartLink
|
||||
href={selected ? '/' : `/tag/${encodeURIComponent(tag.name)}`}
|
||||
passHref
|
||||
legacyBehavior>
|
||||
@@ -19,7 +19,7 @@ const TagItem = ({ tag, selected }) => {
|
||||
{selected && <i className='fas fa-tag mr-1'/>} {`${tag.name} `} {tag.count ? `(${tag.count})` : ''}
|
||||
</div>
|
||||
</li>
|
||||
</Link>
|
||||
</SmartLink>
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import Link from 'next/link'
|
||||
import SmartLink from '@/components/SmartLink'
|
||||
|
||||
const TagItemMini = ({ tag, selected = false }) => {
|
||||
return (
|
||||
<Link
|
||||
<SmartLink
|
||||
key={tag}
|
||||
href={selected ? '/' : `/tag/${encodeURIComponent(tag.name)}`}
|
||||
passHref
|
||||
@@ -14,7 +14,7 @@ const TagItemMini = ({ tag, selected = false }) => {
|
||||
|
||||
<div className='font-light dark:text-gray-400'>{selected && <i className='fas fa-tag mr-1'/>} {tag.name + (tag.count ? `(${tag.count})` : '')} </div>
|
||||
|
||||
</Link>
|
||||
</SmartLink>
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { useGlobal } from '@/lib/global'
|
||||
import throttle from 'lodash.throttle'
|
||||
import Link from 'next/link'
|
||||
import SmartLink from '@/components/SmartLink'
|
||||
import { useCallback, useEffect, useRef, useState } from 'react'
|
||||
import CategoryGroup from './CategoryGroup'
|
||||
import Collapse from '@/components/Collapse'
|
||||
@@ -87,14 +87,14 @@ const TopNav = (props) => {
|
||||
<section className='mt-8'>
|
||||
<div className='text-sm flex flex-nowrap justify-between font-light px-2'>
|
||||
<div className='text-gray-600 dark:text-gray-200'><i className='mr-2 fas fa-th-list' />{locale.COMMON.CATEGORY}</div>
|
||||
<Link
|
||||
<SmartLink
|
||||
href={'/category'}
|
||||
passHref
|
||||
className='mb-3 text-gray-500 hover:text-black dark:text-gray-400 dark:hover:text-white hover:underline cursor-pointer'>
|
||||
|
||||
{locale.COMMON.MORE} <i className='fas fa-angle-double-right' />
|
||||
|
||||
</Link>
|
||||
</SmartLink>
|
||||
</div>
|
||||
<CategoryGroup currentCategory={currentCategory} categories={categories} />
|
||||
</section>
|
||||
@@ -104,14 +104,14 @@ const TopNav = (props) => {
|
||||
<section className='mt-4'>
|
||||
<div className='text-sm py-2 px-2 flex flex-nowrap justify-between font-light dark:text-gray-200'>
|
||||
<div className='text-gray-600 dark:text-gray-200'><i className='mr-2 fas fa-tag' />{locale.COMMON.TAGS}</div>
|
||||
<Link
|
||||
<SmartLink
|
||||
href={'/tag'}
|
||||
passHref
|
||||
className='text-gray-500 hover:text-black dark:hover:text-white hover:underline cursor-pointer'>
|
||||
|
||||
{locale.COMMON.MORE} <i className='fas fa-angle-double-right' />
|
||||
|
||||
</Link>
|
||||
</SmartLink>
|
||||
</div>
|
||||
<div className='p-2'>
|
||||
<TagGroups tags={tags} currentTag={currentTag} />
|
||||
|
||||
Reference in New Issue
Block a user