今天实现了vuepress
中获取所有页面的frontmatter
frontmatter
是页面的页头信息,例如:
---
title: xxx
author: 作者
date: 2023-08-17
---
可以编写一个插件:
module.exports = (options, context) => ({
extendPageData($page) {
const { pages } = context;
// 获取除首页外的其他所有页面的 frontmatter 数据
const frontmatters = pages
.filter(page => page.path !== '/')
.map(page => page.frontmatter);
// 将 frontmatter 数组传递给首页的 frontmatter
$page.frontmatter.homepageFrontmatters = frontmatters;
}
});
然后配置一下:
plugins: [
// ....其他plugin
[require('../plugins/frontmatter'), {}]
]
接下来是使用
console.log(this.$frontmatter.homepageFrontmatters)
效果: