YAML Frontmatter && Markdown 元数据

1352 字
7 分钟
YAML Frontmatter && Markdown 元数据

YAML Frontmatter && Markdown 元数据#

[TOC]


概述#

是什么#

Markdown 文件最开头--- 包裹的一段 YAML 格式数据,叫做 ==Frontmatter==(前置信息/元数据)

---
title: docker compose容器编排 # 标题
published: 2026-05-06
updated: 2026-05-06
description: 文章描述 # 描述
tags: [YAML, Frontmatter, 元数据]
category: 知识扩展
author: 久棹 # 作者
---

📌 注意:它不是 ```yaml 代码块!

Frontmatter 的 --- 是裸写的,直接放在文件第 1 行,前后不加反引号


格式规则#

规则说明
位置必须在文件最开头,第一行就是 ---
分隔符开头一个 ---,结束一个 ---
内容格式标准 YAML 语法(键值对、列表、嵌套)
可选性不是必须的,没有也行
⚠️ ==字符串==大部分不用,但值含 : # & [ { 时必须加==双引号==

YAML 语法速查#

类型写法说明
字符串key: value==可以不加引号==
数字count: 42直接写
布尔draft: truetrue=草稿不发布
false=不是草稿
数组(行内)tags: [a, b, c]方括号
数组(多行)tags:\n(换行) - a\n - b缩进后紧跟 -

📌 推荐字段总结#

字段说明
title文章标题
descriptionSEO 描述,兼顾搜索引擎和文章摘要
summary文章列表卡片上的简短导语(👆的足够了)
date发布日期(创建)
updated最后更新日期,区别于创建日期
tags标签列表,用于检索和相关推荐
category分类,用于文章归类
badge文章角标(New / Hot / Beta)
platform默认blog(博客平台)/Wechat(微信)
author作者名
cover封面图文件名,程序自动从图片目录读取
articleId唯一标识,用于编辑时定位文件
drafttrue=草稿不发布
false=不是草稿

badge 文章角标#

文章列表卡片上显示的状态小标签,不是标准字段,是自己和程序约定好的”暗号”

角标值视觉效果适用场景
New🟢 绿色小标签最近发布的新文章(通常 7 天内)
Hot🔴 红色小标签访问量高、读者关注的热门内容
Top📌 置顶标记长期挂在列表最前面的重要文章
Featured⭐ 金色精选编辑推荐的高质量内容
Beta🟡 黄色小标签内容还在完善中,仅供参考
Updated🔵 蓝色小标签旧文章有重大修订,提示读者回看
---
title: "docker stack 部署应用实战"
---

💡 角标本质就是你自己定义的分类标记,想加什么类型都可以,只要代码里对应处理就行

cover 封面的工作方式#

  • 图片的文件名即可:cover: counter-app-cover.png
  • 程序读取后自动拼完整路径:./笔记名/counter-app-cover.png
  • 也支持 CSS 渐变当纯色背景:cover: "linear-gradient(135deg, #667eea 0%, #764ba2 100%)"
---
title: "docker stack 部署应用实战"
image: "api"
# 封面图放在同目录的 笔记名/ 文件夹下,程序自动读取
---

articleId 文章唯一标识#

给每篇文章一个身份证号,跟文件名解耦

对比靠文件名靠 articleId
改名后编辑❌ 找不到✅ 仍能精准定位
文件移动目录❌ 链接失效✅ 不受影响
唯一性可能重名✅ UUID 全球唯一
---
title: "docker stack 部署应用实战"
---

新建文章时程序帮你生成一串 UUID(如 crypto.randomUUID()),你不用手写

自建博客实例#

---
title: docker stack 部署应用实战
description: 在 Swarm 集群上使用 docker stack 部署 Flask + Redis 计数器应用
published: 2026-05-06
updated: 2026-05-06
tags: [YAML, Frontmatter, 元数据]
category: 知识扩展
author: 久棹
image: "api"
---

💡 这就是你以后搭博客时,Frontmatter 的最小可用集,每个 md 文件顶部写好这些,程序就能自动生成文章列表、标签页、搜索索引

💡 解惑#

这些元数据有什么用❓️

就像快递包裹上的快递单

不看包裹内容就能知道里面是什么、谁寄的、什么时候发的


中文值需要加引号吗❓️#

==大部分情况不需要==,但以下情况必须加引号

场景错误写法 ❌正确写法 ✅
值含冒号 :title: Docker:入门title: "Docker:入门"
值含 #desc: 关于#标签的用法desc: "关于#标签的用法"
值以 { [ 开头text: [重要] 通知text: "[重要] 通知"
值含 & * !title: 安装 & 配置title: "安装 & 配置"
纯数字值想当字符串id: 001(变成数字1)id: "001"

💡 保险做法:中文描述类字段(title、description、summary)一律加双引号,省心


description 和 summary 并存还是二选一❓️#

两个可以并存,各有分工:

字段用途长度建议
description搜索引擎看(SEO),显示在搜索结果里120-160 字符
summary读者看,显示在文章列表/卡片里一句话,30-50 字
---
title: "docker stack 部署应用实战"
description: "在 Docker Swarm 集群上使用 docker stack 命令部署 Flask + Redis 计数器应用,涵盖镜像构建、私有仓库推送、滚动更新与 routing mesh 负载均衡"
---

如果只保留一个,优先用 description,它兼顾 SEO 又能当摘要用

⚠️ 常见坑#

  • Frontmatter 必须从第 1 行第 1 列开始写 ---,前面不能有空行或空格
  • 结束的 --- 不能忘,否则整个文件都被当成 YAML 解析
  • YAML 对缩进敏感,子级必须缩进 2 个空格(不要用 Tab)
  • 不要在 Frontmatter 里写 markdown 语法,它是纯 YAML
  • 中文值含 # & 等特殊字符时必须加双引号,否则 YAML 解析报错

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

YAML Frontmatter && Markdown 元数据
https://www.kpyun.fun/posts/web/other/yaml-frontmatter/
作者
久棹
发布于
2026-05-06
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
久棹
只要胆子大,天天寒暑假!
公告
欢迎来到久棹的技术小站!本站专注 Linux 运维学习笔记分享,如有问题欢迎交流探讨 🎉
分类
标签
站点统计
文章
98
分类
11
标签
203
总字数
244,453
运行时长
0
最后活动
0 天前
站点信息
构建平台
Local
博客版本
Firefly v6.13.5
文章许可
CC BY-NC-SA 4.0

文章目录