fix gitbook build

This commit is contained in:
tangly1024
2023-07-08 13:20:20 +08:00
parent 10199ed983
commit 0cc92c26a4
6 changed files with 23 additions and 18 deletions

View File

@@ -182,7 +182,7 @@ export function getNavPages({ allPages }) {
const allNavPages = allPages.filter(post => { const allNavPages = allPages.filter(post => {
return post && post?.slug && (!post?.slug?.startsWith('http')) && post?.type === 'Post' && post?.status === 'Published' return post && post?.slug && (!post?.slug?.startsWith('http')) && post?.type === 'Post' && post?.status === 'Published'
}) })
const result = allNavPages.map(item => ({ id: item.id, title: item.title || null, category: item.category || null, tags: item.tags || null, summary: item.summary || null, slug: item.slug })) const result = allNavPages.map(item => ({ id: item.id, title: item.title || '', category: item.category || null, tags: item.tags || null, summary: item.summary || null, slug: item.slug }))
const groupedArray = result.reduce((groups, item) => { const groupedArray = result.reduce((groups, item) => {
const categoryName = item.category ? item.category.join('/') : '' // 将category转换为字符串 const categoryName = item.category ? item.category.join('/') : '' // 将category转换为字符串

View File

@@ -10,7 +10,7 @@ const BlogPostCard = ({ post, className }) => {
<div key={post.id} className={`${className} py-1 cursor-pointer px-2 hover:bg-gray-50 rounded-md dark:hover:bg-gray-600 ${currentSelected ? 'bg-green-50 text-green-500' : ''}`}> <div key={post.id} className={`${className} py-1 cursor-pointer px-2 hover:bg-gray-50 rounded-md dark:hover:bg-gray-600 ${currentSelected ? 'bg-green-50 text-green-500' : ''}`}>
<div className="flex flex-col w-full"> <div className="flex flex-col w-full">
<Link href={`${BLOG.SUB_PATH}/${post.slug}`} passHref> <Link href={`${BLOG.SUB_PATH}/${post.slug}`} passHref>
{post.title} <a>{post.title}</a>
</Link> </Link>
</div> </div>
</div> </div>

View File

@@ -17,22 +17,26 @@ const NavPostItem = (props) => {
changeIsOpen(!isOpen) changeIsOpen(!isOpen)
} }
if (group.category) { if (group?.category) {
return <> return <div>
<div <div
onClick={toggleOpenSubMenu} onClick={toggleOpenSubMenu}
className='flex justify-between text-sm font-sans cursor-pointer p-2 hover:bg-gray-50 rounded-md dark:hover:bg-gray-600' key={group.category}> className='flex justify-between text-sm font-sans cursor-pointer p-2 hover:bg-gray-50 rounded-md dark:hover:bg-gray-600' key={group?.category}>
<span>{group.category}</span> <span>{group?.category}</span>
<div className='inline-flex items-center select-none pointer-events-none '><i className={`px-2 fas fa-chevron-left transition-all duration-200 ${isOpen ? '-rotate-90' : ''}`}></i></div> <div className='inline-flex items-center select-none pointer-events-none '><i className={`px-2 fas fa-chevron-left transition-all duration-200 ${isOpen ? '-rotate-90' : ''}`}></i></div>
</div> </div>
<Collapse isOpen={isOpen} onHeightChange={props.onHeightChange}> <Collapse isOpen={isOpen} onHeightChange={props.onHeightChange}>
{group.items?.map(post => (<div key={post.id} className='ml-3 border-l'> {group?.items?.map(post => (<div key={post.id} className='ml-3 border-l'>
<BlogPostCard className='text-sm ml-3' post={post} /></div>)) <BlogPostCard className='text-sm ml-3' post={post} /></div>))
} }
</Collapse> </Collapse>
</> </div>
} else { } else {
return <div> {group.items?.map(post => (<BlogPostCard key={post.id} post={post} className='text-sm' />))}</div> return <div>
{group?.items?.map(post => (<div key={post.id} className='ml-3 border-l'>
<BlogPostCard className='text-sm ml-3' post={post} /></div>))
}
</div>
} }
} }

View File

@@ -1,7 +1,6 @@
import NavPostListEmpty from './NavPostListEmpty' import NavPostListEmpty from './NavPostListEmpty'
import { useRouter } from 'next/router' import { useRouter } from 'next/router'
import NavPostItem from './NavPostItem' import NavPostItem from './NavPostItem'
import { useGitBookGlobal } from '..'
/** /**
* 博客列表滚动分页 * 博客列表滚动分页
@@ -11,13 +10,13 @@ import { useGitBookGlobal } from '..'
* @constructor * @constructor
*/ */
const NavPostList = (props) => { const NavPostList = (props) => {
const { filteredPosts } = useGitBookGlobal() const { filteredPosts } = props
const router = useRouter() const router = useRouter()
let selectedSth = false let selectedSth = false
// 处理是否选中 // 处理是否选中
filteredPosts.map((group) => { filteredPosts?.map((group) => {
let groupSelected = false let groupSelected = false
for (const post of group?.items) { for (const post of group?.items) {
if (router.asPath.split('?')[0] === '/' + post.slug) { if (router.asPath.split('?')[0] === '/' + post.slug) {

View File

@@ -10,6 +10,7 @@ import NavPostList from './NavPostList'
*/ */
const PageNavDrawer = (props) => { const PageNavDrawer = (props) => {
const { pageNavVisible, changePageNavVisible } = useGitBookGlobal() const { pageNavVisible, changePageNavVisible } = useGitBookGlobal()
const { filteredPosts } = props
const switchVisible = () => { const switchVisible = () => {
changePageNavVisible(!pageNavVisible) changePageNavVisible(!pageNavVisible)
} }
@@ -22,7 +23,7 @@ const PageNavDrawer = (props) => {
' overflow-y-hidden shadow-card w-72 duration-200 fixed left-1 top-16 rounded py-2 bg-white dark:bg-gray-600'}> ' overflow-y-hidden shadow-card w-72 duration-200 fixed left-1 top-16 rounded py-2 bg-white dark:bg-gray-600'}>
<div className='dark:text-gray-400 text-gray-600 h-96 overflow-y-scroll p-3'> <div className='dark:text-gray-400 text-gray-600 h-96 overflow-y-scroll p-3'>
{/* 所有文章列表 */} {/* 所有文章列表 */}
<NavPostList /> <NavPostList filteredPosts={filteredPosts} />
</div> </div>
</div> </div>
</div> </div>

View File

@@ -71,10 +71,10 @@ const LayoutBase = (props) => {
{slotLeft} {slotLeft}
<SearchInput className='my-3 rounded-md' /> <SearchInput className='my-3 rounded-md' />
{/* 所有文章列表 */} {/* 所有文章列表 */}
<NavPostList /> <NavPostList filteredPosts={filteredPosts} />
<div className='mt-2'> <div className='mt-2'>
<Footer {...props} /> <Footer {...props}/>
</div> </div>
</div> </div>
</div> </div>
@@ -84,6 +84,7 @@ const LayoutBase = (props) => {
<div id='container-inner' className='w-full px-7 max-w-3xl justify-center mx-auto'> <div id='container-inner' className='w-full px-7 max-w-3xl justify-center mx-auto'>
{slotTop} {slotTop}
<AdSlot type='in-article' /> <AdSlot type='in-article' />
<Transition <Transition
show={!onLoading} show={!onLoading}
appear={true} appear={true}
@@ -142,7 +143,7 @@ const LayoutBase = (props) => {
</div>} </div>}
{/* 移动端导航抽屉 */} {/* 移动端导航抽屉 */}
<PageNavDrawer {...props} /> <PageNavDrawer {...props} filteredPosts={filteredPosts} />
{/* 移动端底部导航栏 */} {/* 移动端底部导航栏 */}
{/* <BottomMenuBar {...props} className='block md:hidden' /> */} {/* <BottomMenuBar {...props} className='block md:hidden' /> */}
@@ -177,7 +178,7 @@ const LayoutIndex = (props) => {
}) })
}, []) }, [])
return <LayoutBase {...props}></LayoutBase> return <LayoutBase {...props}/>
} }
/** /**
@@ -187,7 +188,7 @@ const LayoutIndex = (props) => {
* @returns * @returns
*/ */
const LayoutPostList = (props) => { const LayoutPostList = (props) => {
return <LayoutBase {...props}></LayoutBase> return <LayoutBase {...props}/>
} }
/** /**