阿超
>
vuepress获取所有页面frontmatter
倘若没有骄傲的思想,人将不成其为人,他自身的弱点会使他蜕化为禽兽。——高尔基
今天实现了vuepress
中获取所有页面的frontmatter
frontmatter
是页面的页头信息,例如:
1 2 3 4 5
| --- title: xxx author: 作者 date: 2023-08-17 ---
|
可以编写一个插件:
1 2 3 4 5 6 7 8 9 10 11 12 13
| module.exports = (options, context) => ({ extendPageData($page) { const { pages } = context;
const frontmatters = pages .filter(page => page.path !== '/') .map(page => page.frontmatter);
$page.frontmatter.homepageFrontmatters = frontmatters; } });
|

然后配置一下:
1 2 3 4
| plugins: [
[require('../plugins/frontmatter'), {}] ]
|

接下来是使用
1
| console.log(this.$frontmatter.homepageFrontmatters)
|

效果:
