md 文件开头的 --- 是什么?
frontmatter(笔记属性)讲清
.md 文件顶上被两行 --- 包住的那块,叫 YAML frontmatter:这篇笔记的元数据,比如标题、标签、日期。它属于文件,但不属于正文。认识它的工具会读取或收起它;不认识的工具就把它当文字显示出来。两种都不算坏。
长什么样
---
title: 阅读清单
tags: [读书, 2026]
aliases: [待读]
---
# 笔记正文从这里开始 规则很少:第一个 --- 必须是文件的第一行,第二个 --- 收尾,中间是 YAML,也就是一行行 键: 值。收尾横线之后,就是正常的 Markdown 正文。
这块东西是谁写进去的
frontmatter 起源于静态建站工具,靠读 title、date 这些字段来生成页面。但你现在盯着的这块,多半来路更近:
- Obsidian 管它叫属性(Properties)。你在属性面板里设的每个标签、别名,实际都以 frontmatter 的形式存在 .md 文件本体里。
- AI 工具和 agent 生成笔记时经常带上一块,把标题、日期、标签放在别的软件找得到的地方。
- 各类笔记应用也把它当成纯文本文件里放元数据的标准位置。
这正是这个格式安静的优点:元数据装在文件里,文件搬到哪它跟到哪。Obsidian 笔记之所以可移植,一半功劳在这。
为什么有时候显示得很怪
frontmatter 是个约定,不在 CommonMark 规范里,所以各家查看器的处理并不一致:
- 认识这个约定的查看器会把它藏起来,或者显示成一块整齐的属性区。
- GitHub 在仓库里查看普通 .md 时,把它渲染成正文上方的一个小表格。
- 不认识的查看器把原始几行当文字显示,甚至可能把第二个
---渲染成一条分割线,因为在文档中间 --- 本来就是这个意思。
所以别人发来的文件顶上出现「怪表格」、一条孤零零的横线、或者一段 键: 值 文字,都不是文件坏了。是同一块内容,遇上了意见不同的查看器。其他「看着像没渲染」的情况也是同一套思路,见Markdown 不渲染的常见坑:先问文件里真实存了什么,再问查看器拿它怎么办。
NoteLoom 怎么处理它
NoteLoom 按 Obsidian 的方式对待 frontmatter,所以两边可以共用一个库,不需要任何转换。你看到什么,取决于视图:
| 视图 | 你看到的 |
|---|---|
| 源码(source) | 显示原始 YAML,连横线一起 |
| 编辑(live) | 隐藏;改属性走属性面板 |
| 阅读(reading) | 隐藏;笔记从第一个标题干干净净开始 |
编辑和阅读视图的工具栏上有个属性按钮:点开是一个小表单,改 tags、aliases、title,改完直接写回本地文件的 frontmatter。源码视图里这个按钮是禁用的,因为你本来就在看 YAML。要是 YAML 写坏了,面板会显示警告而不是放任表单编辑把字段覆盖掉;你在源码视图里把它修好。
常见问题
Markdown 文件必须有 frontmatter 吗?
为什么我的 .md 在 GitHub 上顶部多了个表格?
能不能直接把这块删掉?
AI 生成的笔记为什么带 frontmatter?
里面的 YAML 写坏了会怎样?
frontmatter 里的 title 和正文的 # 标题是一回事吗?
看看这块东西和它服务的笔记
用 Chrome / Edge / Arc 打开 NoteLoom,挂上文件夹:阅读视图把 frontmatter 收起来,笔记从第一个标题开始;源码视图看原始 YAML;属性面板改标签不用手写一行。本地文件进,本地文件出。
打开 NoteLoom 试试