Markdown 是什么?为什么几个符号就能写出有格式的文章?

IT那些事2026-10-02发布 WarpEdit
516 0 0

同一段文字,编辑窗口里有 #、** 和短横线,预览里却成了标题、粗体和列表。Markdown 就是用这些简单符号标记文字结构的写作格式。原文保存标记,支持 Markdown 的软件负责识别,再显示出相应的格式。理解这层关系,就能看懂为什么换个软件打开,效果可能不同。

手绘编辑界面对照 Markdown 符号原文与解析后的标题、粗体和列表

先看一段带符号的原文

假设你想写一份周末安排,用 Markdown 可以这样输入:

# 周末安排

先完成 **备份**。

- 整理照片
- 检查更新

在支持这些基础语法的预览里,它会显示成下面这样,具体字体和大小由软件决定:

周末安排

先完成 备份。

  • 整理照片
  • 检查更新

原文里的 # 表示一级标题,两边的 ** 标记需要强调的内容,通常显示为粗体;每行开头的 - 表示无序列表项[1]。上面的代码框展示写法,所以保留符号;预览展示解析后的结果,所以这些标记不再作为普通文字出现。

空格和空行也有用。这个例子在 #、- 后各留一个空格,并用空行分开标题、段落和列表。按 CommonMark 的标题规则,# 周末安排 是标题,#周末安排 会被当作普通文字。有些软件接受后一种写法,照着带空格的版本写更稳妥。

软件怎样把符号变成格式

真正把符号变成格式的是软件。它读到行首的 # ,会把后面的文字识别为标题;读到这段文字里的 **备份**,会把“备份”识别为需要强调的部分。识别这些规则的过程叫解析,把结果画到屏幕上叫渲染。

在常见的网页显示流程中,解析器把 Markdown 转成 HTML,由 HTML 标签描述标题、段落、列表等结构,浏览器再按样式显示。John Gruber 最初介绍的 Markdown 既包括便于写作的纯文本格式,也包括将它转换为 HTML 的工具[2]。今天说“用 Markdown 写文章”,通常指这套写法,不限定必须使用最初的工具。

Markdown 原文经解析形成 HTML 结构,再经渲染和样式显示为页面的手绘流程示意
常见网页显示流程示意;字体、颜色等外观由显示样式控制。

文件里保存的 **备份** 仍然是普通字符。只显示原文的文本编辑器会让你看到星号,支持 Markdown 的预览才会显示对应格式。有的软件边写边更新预览,有的在点击预览后再处理。

把文件名改成 .md,也不会让不支持 Markdown 的软件自动显示格式。扩展名通常提示“这是一份 Markdown 文档”,显示结果仍取决于打开它的软件。

为什么有人愿意这样写文章

Markdown 的一个好处是,不预览,原文也比较容易读。看到“周末安排”下面两行短横线,大致就知道它们是两个事项;修改时,直接改文字和标记。让源文本容易阅读,本来就是它的设计目标[3]。

对写笔记、说明文档或短文章的人来说,这种方式让常用的标题、列表和强调都能在输入文字时完成。你也可以把同一份源文本交给不同的软件显示,不必为每一种界面重新输入内容。这是写作方式上的便利,至于是否顺手,还要看个人习惯和编辑器。

它也有明显取舍。例子里的 # 说明“这里是标题”,没有规定标题必须用多大字号、什么字体;** 标记强调,也没有给文字指定颜色。如果你需要精确安排每一页的位置、复杂的图文混排,单靠这些基础标记就不够了,还要借助软件的排版或导出功能。

因此,写笔记、整理内容层次时,这些标记往往够用;需要精细版式时,还要看编辑器和导出工具能提供什么。

同一份文字,为什么显示不同

同一标题在一款软件里是蓝色,在另一款里是黑色,如果两边都已识别成标题,差别通常来自样式。网页中的字体、颜色、间距等外观主要由 CSS 控制[4],Markdown 源文本没有规定这些细节。

如果连结构都变了,就要看语法支持。Markdown 有不同的实现和扩展,一个平台能识别的写法,另一个未必支持。CommonMark 用明确规范减少基础语法的歧义[5],各款软件支持哪些扩展,仍可能不同。

例如,GitHub Flavored Markdown(GFM)把表格和任务列表列为扩展[6]。- [ ] 检查更新 在支持对应扩展的平台上可以显示成带勾选框的事项,不支持的地方可能仍保留方括号。换工具写作或导出时,这类扩展需要单独确认。

同一 Markdown 标题因样式呈现不同外观,以及任务列表扩展与普通列表显示差异的上下对照示意
概念示意:上行比较显示样式,下行比较任务列表扩展的支持情况。

遇到格式没生效时,可以先检查两件事:当前窗口是否开启了 Markdown 预览,以及这款软件是否支持你用的语法。如果只是颜色、字号不同,再去看主题或样式设置。这样就能分清,是文字没有被正确识别,还是软件给它换了一种外观。

参考资料

  • [1] CommonMark 规范:https://spec.commonmark.org/0.31.2/
  • [2] Markdown 原始介绍:https://daringfireball.net/projects/markdown/
  • [3] 原始语法说明:https://daringfireball.net/projects/markdown/syntax
  • [4] MDN 的 CSS 说明:https://developer.mozilla.org/en-US/docs/Learn_web_development/Core/Styling_basics/What_is_CSS
  • [5] CommonMark 项目说明:https://commonmark.org/
  • [6] GFM 规范:https://github.github.com/gfm/
© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
none
暂无评论...