import{_ as i,c as a,ag as n,o as t}from"./chunks/framework.C1C4sYC0.js";const g=JSON.parse('{"title":"连接到 CMS","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"zh/guide/cms.md","filePath":"zh/guide/cms.md","lastUpdated":1704773074000}'),l={name:"zh/guide/cms.md"};function p(h,s,e,k,r,d){return t(),a("div",null,s[0]||(s[0]=[n(`
将 VitePress 连接到 CMS 主要围绕动态路由展开。在继续阅读之前,请确保了解它的工作原理。
由于每个 CMS 的工作方式都不同,因此我们只能提供一个通用的工作流,你需要根据具体情况进行调整。
如果你的 CMS 需要身份验证,请创建一个 .env 文件来存储你的 API token:
// posts/[id].paths.js
import { loadEnv } from 'vitepress'
const env = loadEnv('', process.cwd())从 CMS 获取必要的数据并将其格式调整为合适的路径数据:
export default {
async paths() {
// 如有需要,使用相应的 CMS 客户端库
const data = await (await fetch('https://my-cms-api', {
headers: {
// 如有必要,可使用 token
}
})).json()
return data.map(entry => {
return {
params: { id: entry.id, /* title, authors, date 等 */ },
content: entry.content
}
})
}
}在页面中渲染内容:
# {{ $params.title }}
- by {{ $params.author }} on {{ $params.date }}
<!-- @content -->如果你已经写了一篇关于如何将 VitePress 与特定的 CMS 集成的指南,请点击下面的“在 GitHub 上编辑此页面”链接将它提交到这里!
`,7)]))}const c=i(l,[["render",p]]);export{g as __pageData,c as default};