48 lines
1.5 KiB
JavaScript
48 lines
1.5 KiB
JavaScript
// 解决代码选项卡无法加载的问题
|
|
import Vue from 'vue'
|
|
import CodeBlock from "@theme/global-components/CodeBlock.vue"
|
|
import CodeGroup from "@theme/global-components/CodeGroup.vue"
|
|
// Register the Vue global component
|
|
Vue.component(CodeBlock)
|
|
Vue.component(CodeGroup)
|
|
|
|
// 注:此文件在浏览器端运行
|
|
import postsMixin from '@theme/mixins/posts'
|
|
export default ({
|
|
Vue, // VuePress 正在使用的 Vue 构造函数
|
|
options, // 附加到根实例的一些选项
|
|
router, // 当前应用的路由实例
|
|
siteData // 站点元数据
|
|
}) => {
|
|
// 修复ISO8601时间格式为普通时间格式,以及添加作者信息
|
|
siteData.pages.map(item => {
|
|
const { frontmatter: { date, author } } = item
|
|
if (typeof date === 'string' && date.charAt(date.length - 1) === 'Z') {
|
|
item.frontmatter.date = repairUTCDate(date)
|
|
}
|
|
if (author) {
|
|
item.author = author
|
|
} else {
|
|
if (siteData.themeConfig.author) {
|
|
item.author = siteData.themeConfig.author
|
|
}
|
|
}
|
|
})
|
|
|
|
// 将对文章数据的处理结果混入Vue实例
|
|
Vue.mixin(postsMixin)
|
|
}
|
|
|
|
|
|
// 修复ISO8601时间格式为普通时间格式
|
|
function repairUTCDate(date) {
|
|
if (!(date instanceof Date)) {
|
|
date = new Date(date)
|
|
}
|
|
return `${date.getUTCFullYear()}-${zero(date.getUTCMonth() + 1)}-${zero(date.getUTCDate())} ${zero(date.getUTCHours())}:${zero(date.getUTCMinutes())}:${zero(date.getUTCSeconds())}`;
|
|
}
|
|
// 小于10补0
|
|
function zero(d) {
|
|
return d.toString().padStart(2, '0')
|
|
}
|