Frontmatter 是 Folio 唯一的内容元数据层。标题、导航位置、排序、日期、作者与分享图都写在这里,页面正文只负责内容本身。
一个完整示例#
---
title: 部署到 GitHub Pages
description: 处理项目子路径与发布工作流。
type: doc
group: 部署
collection: 参考
section: 部署
order: 50
date: 2026-11-01
tags:
- Deployment
- GitHub Pages
status: published
cover: /images/github-pages.png
author:
name: 编辑部
avatar: /images/editorial.png
surface: handbook
---title 与 description 必填;其余字段按需要添加,不写的字段使用默认值。
字段分组#
| 分组 | 字段 | 作用 |
|---|---|---|
| 身份 | id、path |
稳定标识与显式路由 |
| 内容 | type、title、description |
类型、页面标题与摘要 |
| 导航 | group、collection、section、order |
侧栏归属、分组与顺序 |
| 时间 | date、publishedAt、updatedAt、createdAt、createdBy、updatedBy |
文章日期与署名时间 |
| 展示 | tags、status、cover |
标签、状态与分享图 |
| 扩展 | 任意其他键 | 保留在 doc.data |
完整默认值与类型规则见 Frontmatter 参考。这一页只说明写作时怎么选。
默认值#
type:按目录推断,blogs/*为article,projects/*为project,其他为doc。path:由文件位置生成,index.md映射到目录本身。order:默认99。group:按类型生成,文章为「博客」,项目为「项目」,其他为「文档」。tags:空数组。
导航字段#
collection 决定侧栏,section 决定分组,order 决定组内顺序。没有 section 时使用 group 作为分组标题。三者都写内容里,站点配置不需要重复维护。
collection: 指南
section: 写作
order: 13同一 collection 的页面进入同一个侧栏;不同 collection 可以共享路由目录,也可以跨越多个目录。组织方式见 内容组织与排序。
时间与作者#
date用于文章排序,文章之间按日期倒序。publishedAt是更明确的发布时间;显式值优先于date。createdAt、updatedAt、createdBy、updatedBy可由 Git 历史补齐,也可以逐项覆写。- 没有可信来源时保持未定义,不生成伪造日期或作者。
author 支持字符串或对象:
author:
name: 编辑部
avatar: /images/editorial.png未写 author 时,署名栏回退到 Git 首次提交作者;两者都没有时不显示作者。日期、作者与阅读时长的展示规则见 FolioDocMeta。
扩展字段#
核心不认识的字段不会丢失,而是保存在 doc.data:
surface: handbookdoc.data.surface; // "handbook"扩展字段属于站点自己的契约。若某个字段影响渲染或构建,应在站点代码与 官方站点内容维护约定 中同时说明用途。
写作建议#
title、description描述实际内容,不写营销口号。status统一使用published、reference或active。tags先复用已有主题词,再考虑新增。- 修改公开行为或字段时,同步更新对应文档。
- 已发布
0.1.1与dev候选契约要分开说明;collection、section、日期字段属于当前dev候选。