mirror of
https://github.com/d0zingcat/NotionNext.git
synced 2026-06-04 15:10:23 +00:00
feature:最新文章排序调整,适配夜间模式
This commit is contained in:
@@ -9,8 +9,8 @@ const SideBar = ({ tags, currentTag, post, posts }) => {
|
|||||||
// 按时间排序
|
// 按时间排序
|
||||||
if (posts) {
|
if (posts) {
|
||||||
posts = posts.sort((a, b) => {
|
posts = posts.sort((a, b) => {
|
||||||
const dateA = new Date(a?.date?.start_date || a.createdTime)
|
const dateA = new Date(a?.lastEditedTime || a.createdTime)
|
||||||
const dateB = new Date(b?.date?.start_date || b.createdTime)
|
const dateB = new Date(b?.lastEditedTime || b.createdTime)
|
||||||
return dateB - dateA
|
return dateB - dateA
|
||||||
}).slice(0, 5)
|
}).slice(0, 5)
|
||||||
}
|
}
|
||||||
@@ -31,17 +31,17 @@ const SideBar = ({ tags, currentTag, post, posts }) => {
|
|||||||
<hr className='dark:border-gray-700' />
|
<hr className='dark:border-gray-700' />
|
||||||
<section
|
<section
|
||||||
className='text-sm font-bold py-3 px-5 text-gray-600 dark:text-gray-400 dark:hover:bg-black duration-100 flex flex-nowrap align-middle'>
|
className='text-sm font-bold py-3 px-5 text-gray-600 dark:text-gray-400 dark:hover:bg-black duration-100 flex flex-nowrap align-middle'>
|
||||||
<div className='w-32'>最新文章</div>
|
<div className='w-32'>最近更新</div>
|
||||||
</section>
|
</section>
|
||||||
<div>
|
<div>
|
||||||
{posts.map(post => {
|
{posts.map(post => {
|
||||||
return (
|
return (
|
||||||
<Link key={post.id} title={post.title} href={`${BLOG.path}/article/${post.slug}`} >
|
<Link key={post.id} title={post.title} href={`${BLOG.path}/article/${post.slug}`} >
|
||||||
<div className='text-sm py-1.5 px-5 cursor-pointer hover:underline hover:bg-gray-100 flex'>
|
<div className='text-sm py-1.5 px-5 cursor-pointer hover:bg-gray-100 dark:hover:bg-gray-600 flex'>
|
||||||
<div className='w-12 overflow-hidden'>
|
<div className='w-12 overflow-hidden'>
|
||||||
<img className='w-12 w-12 object-cover cursor-pointer transform hover:scale-110 duration-500' src={post.page_cover} alt={post.title} />
|
<img className='w-12 w-12 object-cover cursor-pointer transform hover:scale-110 duration-500' src={post.page_cover} alt={post.title} />
|
||||||
</div>
|
</div>
|
||||||
<div className='w-60 ml-2 overflow-hidden whitespace-nowrap'>{post.title}</div>
|
<div className='w-60 ml-2 overflow-hidden whitespace-nowrap dark:text-gray-300'>{post.title}</div>
|
||||||
</div>
|
</div>
|
||||||
</Link>
|
</Link>
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -48,10 +48,12 @@ async function getPostsFromNotionAPI ({ from }) {
|
|||||||
for (let i = 0; i < pageIds.length; i++) {
|
for (let i = 0; i < pageIds.length; i++) {
|
||||||
const id = pageIds[i]
|
const id = pageIds[i]
|
||||||
const properties = (await getPageProperties(id, block, schema)) || null
|
const properties = (await getPageProperties(id, block, schema)) || null
|
||||||
// Add fullwidth, createdtime to properties
|
|
||||||
properties.createdTime = new Date(
|
properties.createdTime = new Date(
|
||||||
block[id].value?.created_time
|
block[id].value?.created_time
|
||||||
).toString()
|
).toString()
|
||||||
|
properties.lastEditedTime = new Date(
|
||||||
|
block[id].value?.last_edited_time
|
||||||
|
).toString()
|
||||||
properties.fullWidth = block[id].value?.format?.page_full_width ?? false
|
properties.fullWidth = block[id].value?.format?.page_full_width ?? false
|
||||||
properties.page_cover = getPostCover(id, block, pageRecordMap) ?? getContentFirstImage(id, block, pageRecordMap)
|
properties.page_cover = getPostCover(id, block, pageRecordMap) ?? getContentFirstImage(id, block, pageRecordMap)
|
||||||
properties.content = block[id].value?.content ?? []
|
properties.content = block[id].value?.content ?? []
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import BLOG from '@/blog.config'
|
import BLOG from '@/blog.config'
|
||||||
import { NotionAPI } from 'notion-client'
|
import { NotionAPI } from 'notion-client'
|
||||||
import { getDataFromCache, setDataToCache } from '@/lib/cache/cache_manager'
|
import { getDataFromCache, setDataToCache } from '@/lib/cache/cache_manager'
|
||||||
|
import { useRouter } from 'next/router'
|
||||||
|
|
||||||
export async function getPostBlocks (id, from) {
|
export async function getPostBlocks (id, from) {
|
||||||
let pageBlock = await getDataFromCache('page_block_' + id)
|
let pageBlock = await getDataFromCache('page_block_' + id)
|
||||||
|
|||||||
Reference in New Issue
Block a user