Markdown 语法:完整参考指南

· 12分钟阅读

目录

理解 Markdown 语法

Markdown 已成为在纯文本编辑器中编写格式化文本的事实标准。这种轻量级标记语言由 John Gruber 于2004年创建,设计理念简单:可读性高于一切。与 HTML 或其他标记语言不同,Markdown 文档即使在原始形式下也保持可读性。

Markdown 的美妙之处在于其简洁性。您不需要专门的软件或复杂的语法来创建格式良好的文档。一个基本的文本编辑器就足以开始编写。这种易用性使 Markdown 成为全球开发者、技术作家、博主和内容创作者的首选。

Markdown 在现代平台上无处不在。GitHub 将其用于 README 文件和问题讨论。Reddit 使用 Markdown 进行评论格式化。像 Jekyll、Hugo 和 Gatsby 这样的静态站点生成器依赖 Markdown 进行内容管理。文档平台、笔记应用和内容管理系统都已将 Markdown 作为其主要格式化语言。

专业提示:Markdown 文件通常使用 .md.markdown 扩展名。大多数现代文本编辑器会自动识别这些扩展名并提供语法高亮以提高可读性。

Markdown 背后的核心原则是格式化应该是直观的。当您想要强调文本时,用星号包围它。当您想要标题时,在前面加上井号。这些约定反映了人们自然格式化纯文本电子邮件和文档的方式,使学习曲线非常平缓。

基本格式化技巧

掌握基本的 Markdown 格式化是创建专业文档的基础。这些基本技巧涵盖了90%的日常格式化需求,从简单的文本强调到标题和段落等结构元素。

文本强调和内联样式

Markdown 中的文本强调使用直观的符号,这些符号在视觉上暗示其用途。粗体文本使用双星号或下划线:**粗体文本**__粗体文本__ 都会呈现为粗体文本。双符号即使在原始文本中也能创造视觉重量。

斜体文本使用单星号或下划线:*斜体文本*_斜体文本_ 产生斜体文本。斜体非常适合强调、书名、外来短语或需要微妙突出的技术术语。

删除线文本使用双波浪号:~~删除的文本~~ 创建删除的文本。这种格式对于显示编辑、已弃用的功能或已被取代但仍与上下文相关的内容非常有价值。

内联代码片段使用反引号:`let x = 5;` 呈现为 let x = 5;。这种等宽格式将代码与常规文本区分开来,使技术文档更清晰、更易于浏览。

快速提示:您可以组合格式化样式。使用 **_粗体和斜体_** 创建粗体和斜体文本。只需确保您的开始和结束符号正确匹配。

用于文档结构的标题

标题创建层次结构并改善文档导航。Markdown 使用井号(#)表示标题级别,更多的井号表示更低级别的标题:

# 标题 1 (H1)
## 标题 2 (H2)
### 标题 3 (H3)
#### 标题 4 (H4)
##### 标题 5 (H5)
###### 标题 6 (H6)

每个标题级别在文档结构中都有特定用途。H1 通常代表文档标题,应该只出现一次。H2 标记主要部分,而 H3 到 H6 创建重要性递减的子部分。

正确的标题层次结构提高了屏幕阅读器的可访问性,并帮助搜索引擎理解您的内容结构。始终保持逻辑进展——不要在没有中间级别的情况下从 H2 跳到 H5。

段落和换行

Markdown 中的段落由空行分隔。只需在文本块之间留一个空行即可创建不同的段落。这种自然的间距使原始 Markdown 文件具有很高的可读性。

要在段落内换行(不创建新段落),请在行尾添加两个空格并按 Enter。或者,使用 HTML <br> 标签进行显式换行。当您需要精确控制文本流时,这种区别很重要。

使用列表组织内容

列表将密集的信息转化为可浏览、易消化的块。Markdown 支持无序(项目符号)和有序(编号)列表,以及两种类型的嵌套组合。

无序列表

使用星号(*)、加号(+)或连字符(-)作为项目符号标记创建无序列表。这三种都产生相同的结果,因此根据个人偏好或项目约定进行选择:

* 第一项
* 第二项
* 第三项
  * 嵌套项
  * 另一个嵌套项
* 第四项

嵌套列表需要一致的缩进——通常是两个或四个空格。缩进级别决定嵌套深度,允许您创建复杂的层次结构。

有序列表

有序列表使用数字后跟句点。有趣的是,Markdown 不需要连续编号——它会在呈现的输出中自动重新编号项目:

1. 第一步
2. 第二步
3. 第三步
   1. 子步骤 A
   2. 子步骤 B
4. 第四步

这种自动编号功能意味着您可以在起草期间对每个项目使用 1.,这样可以更轻松地重新排序项目而无需手动重新编号。呈现的输出将显示正确的顺序编号。

专业提示:混合使用有序和无序列表来处理复杂的文档。对顺序步骤或排名项目使用有序列表,对非顺序集合或功能列表使用无序列表。

列表最佳实践

保持列表项简洁且结构平行。如果一个项目是完整的句子,则使所有项目都是完整的句子。如果项目是片段,则保持它们都是片段。这种一致性提高了可读性和专业性。

策略性地使用列表来分解长段落。当您发现自己在段落形式中写"第一"、"第二"、"第三"时,这是将内容转换为列表的信号。您的读者会感谢您提高的可浏览性。

链接和图片将您的内容连接到外部资源和视觉元素。Markdown 为内联和引用样式链接提供了清晰、可读的语法。

创建超链接

内联链接使用方括号表示链接文本,圆括号表示 URL:[链接文本](https://example.com)。这种格式将链接及其目标保持在一起,使您在编辑时可以轻松看到链接到的内容。

添加悬停时显示的可选标题文本:[链接文本](https://example.com "悬停标题")。标题文本提供额外的上下文,并为依赖辅助技术的用户提高可访问性。

引用样式链接将链接文本与 URL 分开,提高长文档的可读性:

[链接文本][reference-id]

[reference-id]: https://example.com "可选标题"

当您多次引用同一 URL 时,这种方法非常出色。在文档底部定义一次 URL,然后在整个文档中引用它。更新变得微不足道——更改一行而不是在整个文档中搜索。

嵌入图片

图片语法与链接语法类似,带有感叹号前缀:![替代文本](image-url.jpg)。替代文本对于可访问性和 SEO 至关重要——为看不到图片的用户描述图片显示的内容。

包含悬停工具提示的可选标题文本:![替代文本](image-url.jpg "图片标题")。这些额外的上下文帮助用户在点击之前或图片加载失败时理解图片的相关性。

引用样式图片的工作方式与引用样式链接相同:

![替代文本][image-ref]

[image-ref]: /path/to/image.jpg "可选标题"

快速提示:对同一存储库或项目中的图片使用相对路径。这使您的 Markdown 具有可移植性——移动整个文件夹可以保留所有图片链接而无需修改。

链接到内部部分

使用标题 ID 创建指向文档内标题的锚点链接。大多数 Markdown 处理器会自动从标题文本生成 ID:[跳转到部分](#section-heading)。ID 通常将标题文本转换为小写并用连字符替换空格。

内部链接改善了长文档中的导航,让读者可以直接跳转到相关部分。这种技术在文档、教程和综合指南中特别有效。

高级 Markdown 格式化

除了基本格式化之外,Markdown 还为技术写作、代码文档和复杂内容结构提供了强大的功能。这些高级技术将您的文档从简单文本提升到专业级文档。

代码块和语法高亮

围栏代码块使用三个反引号创建多行代码部分。在开始反引号后立即指定编程语言以进行语法高亮:

```javascript
function greet(name) {
  return `Hello, ${name}!`;
}
```

语法高亮通过为关键字、字符串、注释和其他语言元素着色,极大地提高了代码可读性。大多数 Markdown 处理器支持数十种语言,从 Python 和 JavaScript 到 SQL 和 YAML。

缩进代码块提供了另一种语法——将每行缩进四个空格或一个制表符。这种方法普遍适用,但缺乏语法高亮功能:

    function example() {
        console.log("缩进代码块");
    }

水平线

使用三个或更多连字符、星号或下划线单独成行创建视觉分隔符:

---
***
___

水平线将内容分成不同的部分,在长文档中提供视觉呼吸空间。谨慎使用——太多的分隔符会分散您的内容并降低凝聚力。

转义特殊字符

反斜杠转义 Markdown 特殊字符,按字面显示它们而不是作为格式:\*不是斜体\* 呈现为 *不是斜体* 而不是不是斜体

需要转义的常见字符包括:\ ` * _ { } [ ] ( ) # + - . !。在讨论 Markdown 语法本身或技术内容中出现特殊字符时,这种技术至关重要。

使用引用块和任务列表

引用块和任务列表为您的内容添加语义含义。引用块突出显示引用或重要标注,而任务列表跟踪进度和行动项目。

用于强调的引用块

使用大于号(>)在行首创建引用块:

> 这是一个引用块。
> 它可以跨越多行。
>
> 并包含多个段落。

嵌套引用块使用多个 > 符号:

> 第一级引用
>> 嵌套引用
>>> 深度嵌套引用

引用块非常适合用于拉引用、推荐、重要警告或突出显示关键要点。它们创造了视觉区别,将读者的目光吸引到关键信息上。

用于项目管理的任务列表

任务列表将列表语法与复选框符号结合起来。使用 - [ ] 表示未选中的项目,使用 - [x] 表示已完成的项目:

- [x] 已完成的任务
- [ ] 待处理的任务
- [ ] 另一个待处理的任务
  - [x] 已完成的子任务
  - [ ] 待处理的子任务

任务列表在项目文档、会议记录和问题跟踪中表现出色。许多平台(如 GitHub)将这些呈现为交互式复选框,允许用户直接在呈现的视图中勾选项目。

专业提示:在拉取请求描述中使用任务列表来跟踪实施进度。审阅者可以一目了然地看到哪些需求

We use cookies for analytics. By continuing, you agree to our Privacy Policy.