Astro 内容集合入门
用 zod schema 把 Markdown 的 frontmatter 管起来,构建期就发现问题。
内容集合是 Astro 最顺手的部分:一个 schema 文件管住所有 frontmatter。
Schema 即契约
const blog = defineCollection({
schema: z.object({
title: z.string(),
pubDate: z.coerce.date(),
tags: z.array(z.string()).default([]),
}),
});
写错字段名?构建直接失败,比线上排查看图识字快得多。
查询与渲染
getCollection 拿列表,render 出正文,剩下的都是普通组件工作。
- 列表页排序
- 详情页取上一篇下一篇
- 标签归组