Astro 内容管线速记:Content Collections 从入门到顺手
269 字
1 分钟
Astro 内容管线速记:Content Collections 从入门到顺手
把博客搬到 Astro 之后,最让我安心的是内容管线:Markdown 不再是「随便放的文件」,而是有类型约束的数据源。
从 glob 到 getCollection
以前常见的写法是拿 import.meta.glob 扫目录,再自己解析 frontmatter——校验全靠自觉。Content Collections 的思路是先声明 schema:
import { defineCollection, z } from 'astro:content';import { glob } from 'astro/loaders';
const blog = defineCollection({ loader: glob({ pattern: '**/*.md', base: './src/content/blog' }), schema: z.object({ title: z.string(), pubDate: z.coerce.date(), tags: z.array(z.string()).default([]), }),});
export const collections = { blog };少写一个必填字段,构建期直接报错,而不是上线后渲染出空白标题。这件事对懒人特别友好:schema 就是文档。
路由即数据
文章页用 getStaticPaths 展开集合,参数就是 slug,构建完每个 URL 都是一张静态 HTML:
npx astro build# dist/rss.xml常用字段约定如下:
| 字段 | 类型 | 必填 |
|---|---|---|
title | string | ✓ |
pubDate | date | ✓ |
tags | string[] | 可选 |
小结
数据有 schema、路由静态展开、代码高亮交给 Shiki 在构建期做完——内容站的复杂度被框架吃掉了,剩下的时间可以专心写字。
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!
Astro 内容管线速记:Content Collections 从入门到顺手
https://ryuki.icu/posts/astro-content-pipeline-notes/相关文章智能推荐
1
重新开始写博客:一次暖白编辑风的自我改造
随笔把博客从仪表盘审美拉回杂志排版——为什么是暖白底、大留白和一个克制的强调色。
2
暖白编辑风实战:把配色收敛成七个 token
设计全站只允许七个颜色变量出现裸值,其余地方一律引用 token——先把丑话说在前面的过程记录。
3
散步、独处与长期主义
随笔把「坚持」翻译成每天二十分钟的散步——一些关于节奏的碎念。
4
都 2025 了,我为什么还写 RSS
随笔RSS 没有死,它只是退回了它最舒服的位置——一个安静、主动、零算法的订阅入口。
5
编辑感从哪里来:三条排版小抄
设计首字下沉、pull quote 和细线分隔——杂志质感的三块积木,以及它们的使用分寸。
随机文章随机推荐













