40 lines
1.2 KiB
JavaScript
40 lines
1.2 KiB
JavaScript
import { compareDate } from '@theme/helpers/utils'
|
|
|
|
// 过滤博客数据
|
|
export function filterPosts (posts, isTimeline) {
|
|
posts = posts.filter((item, index) => {
|
|
const { title, frontmatter: { home, date, publish }} = item
|
|
// 过滤多个分类时产生的重复数据
|
|
if (posts.indexOf(item) !== index) {
|
|
return false
|
|
} else {
|
|
return isTimeline === true
|
|
? !(home == true || title == undefined || date === undefined || publish === false)
|
|
: !(home == true || title == undefined || publish === false)
|
|
}
|
|
})
|
|
return posts
|
|
}
|
|
|
|
// 排序博客数据
|
|
export function sortPostsByStickyAndDate (posts) {
|
|
posts.sort((prev, next) => {
|
|
const prevSticky = prev.frontmatter.sticky
|
|
const nextSticky = next.frontmatter.sticky
|
|
if (prevSticky && nextSticky) {
|
|
return prevSticky == nextSticky ? compareDate(prev, next) : (prevSticky - nextSticky)
|
|
} else if (prevSticky && !nextSticky) {
|
|
return -1
|
|
} else if (!prevSticky && nextSticky) {
|
|
return 1
|
|
}
|
|
return compareDate(prev, next)
|
|
})
|
|
}
|
|
|
|
export function sortPostsByDate (posts) {
|
|
posts.sort((prev, next) => {
|
|
return compareDate(prev, next)
|
|
})
|
|
}
|