frontmatter 每个字段是什么意思
文章开头那段被横线包住的字段,逐个说明作用、默认行为和写错的后果。
本文是 《博客使用指南》 系列的第 2 篇,共 3 篇
每篇文章的开头都有一段被 --- 包起来的内容:
---
title: 文章标题
description: 一句话摘要
date: 2026-10-10
category: 指南
tags: [写作, frontmatter]
---
这段叫 frontmatter,用来描述这篇文章的元信息。下面的正文才是文章内容。
必填的三个
title
文章标题。会显示在文章页顶部、列表卡片里、浏览器标签页和搜索结果里。
文件名和标题是两回事——文件名决定网址,title 决定显示什么。所以文件名用英文、
标题写中文完全没问题。
description
一句话摘要。它出现在三个地方:文章列表的卡片、首页的条目、以及搜索结果里的描述文字。
别敷衍这一句。搜索引擎结果里显示的就是它,写得清楚直接影响别人点不点进来。
date
发布日期,写成 2026-10-10 这种格式(必须补零,2026-1-5 是不规范的)。
它决定:
- 文章在列表里的排序(新的在前)
- 首页「最新文章」的顺序
- 站点地图里的最后修改时间
category
分类,一篇文章只能有一个。
不写的话会被自动归到「未分类」,不会报错,但那篇文章就会显得像是忘了填。所以正经 写文章时都该给一个。
可选的几个
tags
标签,一篇可以有多个,用数组写:
tags:
- Git
- 版本控制
或者写成一行:
tags: [Git, 版本控制]
和分类的区别:分类是「这篇属于哪一类」(互斥),标签是「这篇涉及什么」(可以交叉)。
#Git 这种标签能同时出现在「指南」和「工具」分类的文章上,分类就不行。
不写就不写,文章仍然会出现在「全部文章」和「按分类」视图里,只是不会出现在 「按标签」视图。
series 和 seriesOrder
把几篇文章组成一个有阅读顺序的系列。这两个要一起写:
series: 博客使用指南
seriesOrder: 2
series是系列名,同名的文章会被归到一起seriesOrder是在这个系列里的阅读顺序,从 1 开始
顺序不看日期,只看 seriesOrder。这样你就算隔了几个月补写一篇中间章节,也能把它
插到正确的位置。
文章页底部会出现「《系列名》上一篇 / 下一篇」的导航,首页也会出现「系列专栏」卡片。 系列只有一篇文章时不算系列,不会显示这些导航。
只有写了 series 但没写 seriesOrder 时,那篇会被当作顺序 0,排在系列最前面。
cover
自定义封面。不写的话,系统会按文章的文件路径自动分配一张默认封面(同一篇文章每次 都是同一张,不会变)。
想用自己的图:
cover: /images/my-cover.png
路径规则和正文里的图片一样——放在 public/images/ 下,用 /images/... 引用。
封面出现在列表卡片、首页,以及分享到社交平台时的卡片缩略图上。
featured
是否精选,值只有 true 或 false,默认 false。
featured: true
首页的「精选文章」模块只显示标了 featured: true 的文章,没有任何自动兜底。一篇
都不标,那个模块就整个不显示。
所以它是纯手工挑选的:挑你希望访客第一眼看到的那几篇。别标太多,标多了就失去"精选" 的意义了。
一个很容易踩的坑:冒号要加引号
YAML 里,值里面如果出现「冒号加空格」,必须用引号包起来,否则会被当成键值对:
# 错的
tags:
- Counter-Strike: Global Offensive
上面这样写,那个标签会变成一个对象 { "Counter-Strike": "Global Offensive" },页面上
就会原样显示出这串 JSON。正确写法:
tags:
- "Counter-Strike: Global Offensive"
加了引号就正常了。 判断标准很简单:值里有 : (冒号加空格)就加引号,没有就不用。
完整示例
---
title: Git 安装与基本使用
description: 从装好 Git 到跑通日常提交流程,把最常用的几条命令讲清楚。
date: 2026-10-04
category: 工具
tags:
- Git
- 版本控制
series: Git 入门
seriesOrder: 1
featured: true
---
下一篇讲正文部分——Markdown 怎么写,以及本站对标题、链接、图片、代码块做了哪些处理。