Markdown语法速查表:从原理看懂常用写法

Markdown用一小撮符号就能给文本排版。来看看每个符号具体做了什么,以及这种格式为什么会流行起来。

标题由 # 的数量决定

从"# "到"###### "分别对应一级到六级标题,#后面必须加一个空格。

强调用 * 或 _ 包裹文字

*斜体*或_斜体_表示斜体,**加粗**或__加粗__表示加粗,***加粗斜体***则同时具备两种效果。

列表用 - 或 1. 来写

用"-"或"*"可以写无序列表,用"1."这样的数字加句点可以写有序列表,通过缩进还能做出嵌套子列表。

代码用反引号包裹

单个反引号包裹的是行内代码,三个反引号```组成的代码块可以写多行代码,后面加上语言名通常还能启用语法高亮。

引用与分隔线

在行首加">"表示引用文字,单独一行写"---"则会生成一条水平分隔线。

Markdown为什么能如此流行

和HTML标签不同,Markdown即使不经过渲染,以纯文本形式阅读时也相当易读,而且轻量到不需要专门的编辑器就能书写。正是这一特性,让它被GitHub、各类文档工具、聊天应用和笔记应用广泛采用。

Markdown并不是一套完全统一的标准

基础语法本身相当精简,但很多平台都在此基础上自行加入了表格、带复选框的任务列表、删除线、脚注等扩展功能(比如GitHub风格Markdown)。这也是为什么按某个平台的写法写出的文档,在另一个更简单的解析器上渲染时,某些部分可能显示不正确的原因。

常见问题

只要一个应用支持Markdown,渲染效果就一定完全一样吗?

并不一定。核心语法在几乎所有平台上都能正常工作,但表格、脚注这类扩展功能是否支持、如何渲染,取决于该平台具体使用的"方言"或解析器。

可以在Markdown里混用HTML标签吗?

很多Markdown实现都允许原生HTML标签直接透传,不经过Markdown解析,常用于实现Markdown本身难以表达的效果,比如用<br>手动换行。但这并不保证在所有平台上都能一致生效,出于安全考虑,有些平台会直接禁用原生HTML。