文章统一放在 apps/blog/src/content/posts/ 下,文件名即 slug:
访问路径 /posts/<slug>,支持多级目录(如 /posts/wsl2/arch)。
PostFrontmatterSchema 的完整定义:
category |
string |
| — |
| 分类名称 |
tags | string[] | — | 标签数组,支持逗号分隔或 YAML 列表 |
cover | string | — | 封面图片 URL |
draft | boolean | — | 草稿标记,true 时默认隐藏 |
series | string | — | 所属系列名称 |
seriesOrder | number | — | 系列内排序序号 |
updated | string | — | 最后更新日期 YYYY-MM-DD |
文章标题,显示在详情页、列表卡片和浏览器标签。必填,空值时 Zod 校验失败,该文章会被跳过。
控制文章排序(新在前)。推荐加引号避免 YAML 解析为 Date 对象:
唯一描述字段,同时用于 SEO <meta> 和文章列表卡片摘要。建议 150 字符以内:
之前独立的 excerpt 字段已移除,统一使用 description。
文章分类,用于侧边栏筛选和归组:
标签数组,两种写法等价:
标签内的空格会自动转为连字符(如 AI Agent → AI-Agent)。
封面图片 URL,显示在列表卡片和文章详情页顶部。
草稿标记,true 时文章默认不出现列表页。本地预览可用 getAllPosts({ includeDrafts: true }) 查看。
系列归组和排序,同一系列的文章会在详情页底部显示上下篇导航:
最后修改日期,用于文章页显示「最后更新于」信息。优先度高于 git commit date: