vitepress
vitepress copied to clipboard
怎样将mardown文件Frontmatter中的参数传递到data loaders中
Is your feature request related to a problem? Please describe.
我想要复用一个data loader,在不同的markown文件中都导入它,它里面的逻辑是一样的,但是不同的markdown文件中导入时会有参数变化。 我想要从服务器加载数据,在不同的markdown文件中利用数据加载器时,fetch地址中的参数是不一样的,我想要把markdown文件中导入的data loader的fetch的参数写到Frontmatter中,但是我不知道如何传递给data loader
Describe the solution you'd like
是否可以像vue3的组合式函数一样,在data loader中导出函数,通过导出函数来传递参数到data loader中
Describe alternatives you've considered
No response
Additional context
No response
Validations
- [X] Follow our Code of Conduct
- [X] Read the docs.
- [X] Read the Contributing Guidelines.
- [X] Check that there isn't already an issue that asks for the same feature to avoid creating a duplicate.
没有太理解你说的 Data Loader 是什么。是 CMS 的 ContentLoader 吗?
如果是你项目中的一个概念的话,我想你需要的是能访问 frontmatter 的 API?是的话,你可以直接用 useData()
<script setup>
import { useData } from 'vitepress'
const { frontmatter } = useData()
</script>
<template>
<h1>{{ frontmatter.someDataLoaderParams }}</h1>
</template>
没有太理解你说的 Data Loader 是什么。是 CMS 的 ContentLoader 吗?
如果是你项目中的一个概念的话,我想你需要的是能访问
frontmatter的 API?是的话,你可以直接用useData()<script setup> import { useData } from 'vitepress' const { frontmatter } = useData() </script> <template> <h1>{{ frontmatter.someDataLoaderParams }}</h1> </template>
不是的,是 .data.js文件,我在多个地方import同一个.data.js文件,为了复用.data.js文件中的逻辑,但是不同的地方import时又需要把变量传递到.data.js文件中,在.data.js文件中无法使用useData,我试过import.meta和globarThis也不能够传递变量到.data.js文件中,现在我不知道有什么办法可以把变量传递到.data.js文件中
ref: https://github.com/vuejs/vitepress/issues/2637
是指这个吗?
ref: #2637
是指这个吗?
不是这个,在文档中.data.js文件被称为data loader
Same problem. Looking for a walkaround... 🙏