mirror of
https://github.com/d0zingcat/NotionNext.git
synced 2026-06-01 07:26:47 +00:00
fix post?.
This commit is contained in:
@@ -102,7 +102,7 @@ function getCustomNav({ allPages }) {
|
|||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
function getCustomMenu({ collectionData }) {
|
function getCustomMenu({ collectionData }) {
|
||||||
const menuPages = collectionData.filter(post => (post.type === BLOG.NOTION_PROPERTY_NAME.type_menu || post.type === BLOG.NOTION_PROPERTY_NAME.type_sub_menu) && post.status === 'Published')
|
const menuPages = collectionData.filter(post => (post?.type === BLOG.NOTION_PROPERTY_NAME.type_menu || post?.type === BLOG.NOTION_PROPERTY_NAME.type_sub_menu) && post.status === 'Published')
|
||||||
const menus = []
|
const menus = []
|
||||||
if (menuPages && menuPages.length > 0) {
|
if (menuPages && menuPages.length > 0) {
|
||||||
menuPages.forEach(e => {
|
menuPages.forEach(e => {
|
||||||
@@ -287,7 +287,7 @@ async function getDataBaseInfoByNotionAPI({ pageId, from }) {
|
|||||||
let postCount = 0
|
let postCount = 0
|
||||||
// 查找所有的Post和Page
|
// 查找所有的Post和Page
|
||||||
const allPages = collectionData.filter(post => {
|
const allPages = collectionData.filter(post => {
|
||||||
if (post.type === 'Post' && post.status === 'Published') {
|
if (post?.type === 'Post' && post.status === 'Published') {
|
||||||
postCount++
|
postCount++
|
||||||
}
|
}
|
||||||
return post && post?.slug &&
|
return post && post?.slug &&
|
||||||
@@ -306,7 +306,7 @@ async function getDataBaseInfoByNotionAPI({ pageId, from }) {
|
|||||||
const categoryOptions = getAllCategories({ allPages, categoryOptions: getCategoryOptions(schema) })
|
const categoryOptions = getAllCategories({ allPages, categoryOptions: getCategoryOptions(schema) })
|
||||||
const tagOptions = getAllTags({ allPages, tagOptions: getTagOptions(schema) })
|
const tagOptions = getAllTags({ allPages, tagOptions: getTagOptions(schema) })
|
||||||
// 旧的菜单
|
// 旧的菜单
|
||||||
const customNav = getCustomNav({ allPages: collectionData.filter(post => post.type === 'Page' && post.status === 'Published') })
|
const customNav = getCustomNav({ allPages: collectionData.filter(post => post?.type === 'Page' && post.status === 'Published') })
|
||||||
// 新的菜单
|
// 新的菜单
|
||||||
const customMenu = await getCustomMenu({ collectionData })
|
const customMenu = await getCustomMenu({ collectionData })
|
||||||
const latestPosts = getLatestPosts({ allPages, from, latestPostCount: 5 })
|
const latestPosts = getLatestPosts({ allPages, from, latestPostCount: 5 })
|
||||||
|
|||||||
@@ -117,7 +117,7 @@ async function filterByMemCache(allPosts, keyword) {
|
|||||||
for (const post of allPosts) {
|
for (const post of allPosts) {
|
||||||
const cacheKey = 'page_block_' + post.id
|
const cacheKey = 'page_block_' + post.id
|
||||||
const page = await getDataFromCache(cacheKey, true)
|
const page = await getDataFromCache(cacheKey, true)
|
||||||
const tagContent = post.tags && Array.isArray(post.tags) ? post.tags.join(' ') : ''
|
const tagContent = post?.tags && Array.isArray(post?.tags) ? post?.tags.join(' ') : ''
|
||||||
const categoryContent = post.category && Array.isArray(post.category) ? post.category.join(' ') : ''
|
const categoryContent = post.category && Array.isArray(post.category) ? post.category.join(' ') : ''
|
||||||
const articleInfo = post.title + post.summary + tagContent + categoryContent
|
const articleInfo = post.title + post.summary + tagContent + categoryContent
|
||||||
let hit = articleInfo.toLowerCase().indexOf(keyword) > -1
|
let hit = articleInfo.toLowerCase().indexOf(keyword) > -1
|
||||||
|
|||||||
@@ -115,7 +115,7 @@ async function filterByMemCache(allPosts, keyword) {
|
|||||||
for (const post of allPosts) {
|
for (const post of allPosts) {
|
||||||
const cacheKey = 'page_block_' + post.id
|
const cacheKey = 'page_block_' + post.id
|
||||||
const page = await getDataFromCache(cacheKey, true)
|
const page = await getDataFromCache(cacheKey, true)
|
||||||
const tagContent = post.tags && Array.isArray(post.tags) ? post.tags.join(' ') : ''
|
const tagContent = post?.tags && Array.isArray(post?.tags) ? post?.tags.join(' ') : ''
|
||||||
const categoryContent = post.category && Array.isArray(post.category) ? post.category.join(' ') : ''
|
const categoryContent = post.category && Array.isArray(post.category) ? post.category.join(' ') : ''
|
||||||
const articleInfo = post.title + post.summary + tagContent + categoryContent
|
const articleInfo = post.title + post.summary + tagContent + categoryContent
|
||||||
let hit = articleInfo.indexOf(keyword) > -1
|
let hit = articleInfo.indexOf(keyword) > -1
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ const Search = props => {
|
|||||||
// 静态过滤
|
// 静态过滤
|
||||||
if (keyword) {
|
if (keyword) {
|
||||||
filteredPosts = posts.filter(post => {
|
filteredPosts = posts.filter(post => {
|
||||||
const tagContent = post.tags ? post.tags.join(' ') : ''
|
const tagContent = post?.tags ? post?.tags.join(' ') : ''
|
||||||
const categoryContent = post.category ? post.category.join(' ') : ''
|
const categoryContent = post.category ? post.category.join(' ') : ''
|
||||||
const searchContent =
|
const searchContent =
|
||||||
post.title + post.summary + tagContent + categoryContent
|
post.title + post.summary + tagContent + categoryContent
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ export async function getStaticProps({ params: { tag } }) {
|
|||||||
const props = await getGlobalData({ from })
|
const props = await getGlobalData({ from })
|
||||||
|
|
||||||
// 过滤状态
|
// 过滤状态
|
||||||
props.posts = props.allPages.filter(page => page.type === 'Post' && page.status === 'Published').filter(post => post && post.tags && post.tags.includes(tag))
|
props.posts = props.allPages.filter(page => page.type === 'Post' && page.status === 'Published').filter(post => post && post?.tags && post?.tags.includes(tag))
|
||||||
|
|
||||||
// 处理文章页数
|
// 处理文章页数
|
||||||
props.postCount = props.posts.length
|
props.postCount = props.posts.length
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ export async function getStaticProps({ params: { tag, page } }) {
|
|||||||
const from = 'tag-page-props'
|
const from = 'tag-page-props'
|
||||||
const props = await getGlobalData({ from })
|
const props = await getGlobalData({ from })
|
||||||
// 过滤状态、标签
|
// 过滤状态、标签
|
||||||
props.posts = props.allPages.filter(page => page.type === 'Post' && page.status === 'Published').filter(post => post && post.tags && post.tags.includes(tag))
|
props.posts = props.allPages.filter(page => page.type === 'Post' && page.status === 'Published').filter(post => post && post?.tags && post?.tags.includes(tag))
|
||||||
// 处理文章数
|
// 处理文章数
|
||||||
props.postCount = props.posts.length
|
props.postCount = props.posts.length
|
||||||
// 处理分页
|
// 处理分页
|
||||||
@@ -48,7 +48,7 @@ export async function getStaticPaths() {
|
|||||||
const paths = []
|
const paths = []
|
||||||
tagOptions?.forEach(tag => {
|
tagOptions?.forEach(tag => {
|
||||||
// 过滤状态类型
|
// 过滤状态类型
|
||||||
const tagPosts = allPages.filter(page => page.type === 'Post' && page.status === 'Published').filter(post => post && post.tags && post.tags.includes(tag.name))
|
const tagPosts = allPages.filter(page => page.type === 'Post' && page.status === 'Published').filter(post => post && post?.tags && post?.tags.includes(tag.name))
|
||||||
// 处理文章页数
|
// 处理文章页数
|
||||||
const postCount = tagPosts.length
|
const postCount = tagPosts.length
|
||||||
const totalPages = Math.ceil(postCount / BLOG.POSTS_PER_PAGE)
|
const totalPages = Math.ceil(postCount / BLOG.POSTS_PER_PAGE)
|
||||||
|
|||||||
Reference in New Issue
Block a user