内容模型
文章存在数据库里,文档存在于版本控制里,两者为什么不同。
文章在 Postgres
文章是数据:它们有草稿状态、发布时间、浏览量、标签与搜索结果。这些都需要查询、排序与索引,所以它们存在 Postgres 里,通过后台编辑。
正文是 MDX,渲染时由 renderMdx 编译。因为正文来自数据库,它会经过一道守卫:模块语法与动态求值在编译前就被拒绝。
文档在文件里
文档是代码的一部分:它随仓库演进,和实现一起被 review。所以它由 Velite 从 content/docs 收集,frontmatter 由 Zod 校验。
| 内容 | 位置 | 渲染 |
|---|---|---|
| 文章 | Postgres | renderMdx |
| 文档 | content/docs | renderMdx |
两者共用同一个渲染器与同一组插件,避免出现两套行为不一致的管线。