vuepress-theme-reco/mixins/index.js

56 lines
1.7 KiB
JavaScript
Raw Normal View History

2019-08-31 01:50:57 +08:00
export default {
methods: {
_tagColor () {
// 红、蓝、绿、橙、灰
const tagColorArr = ['#e15b64', '#f47e60', '#f8b26a', '#abbd81', '#849b87', '#e15b64', '#f47e60', '#f8b26a', '#f26d6d', '#67cc86', '#fb9b5f', '#3498db']
const index = Math.floor(Math.random() * tagColorArr.length)
return tagColorArr[index]
},
_filterPostData (posts, isTimeline) {
const stickyArr = []
posts = posts.filter(item => {
const { title, frontmatter: { home, date, publish, sticky }} = item
if (sticky) {
stickyArr.unshift(item)
return false
}
return isTimeline === true
2019-10-27 20:34:46 +08:00
? !(home == true || title == undefined || date === undefined || publish === false)
: !(home == true || title == undefined || publish === false)
})
return stickyArr.concat(posts)
},
_sortPostData (posts) {
posts.sort((a, b) => {
return this._getTimeNum(b) - this._getTimeNum(a)
})
},
// 获取时间的数字类型
_getTimeNum (date) {
return parseInt(new Date(date.frontmatter.date).getTime())
},
// 获取博客数据
_getPostData () {
return new Promise(resolve => {
if (!this.$themeConfig.posts) {
const {
$categories: { list: articles },
_filterPostData,
_sortPostData
} = this
let posts = articles.reduce((allData, currnetData) => {
return [...allData, ...currnetData.pages]
}, [])
_sortPostData(posts)
posts = _filterPostData(posts)
this.$themeConfig.posts = posts
resolve(posts)
}
})
2019-08-31 01:50:57 +08:00
}
}
}