基本 Markdown 用法的语法指南

Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018

重要

从 Azure DevOps 内容版本选择器中选择一个版本。

若要查看可用于你的平台的内容,请确保从目录上方的版本选择器中选择本文的正确版本。 功能支持会有所不同,具体取决于你使用的是 Azure DevOps Services 还是本地版本的 Azure DevOps Server(之前称为 Team Foundation Server (TFS))。
若要了解正在使用哪个本地版本,请查看我使用的是哪个平台/版本?

可在此处找到一些基本 Markdown 语法指南和有关在 Azure DevOps 功能中使用 Markdown 的具体指南。 可以使用常见的 Markdown 约定GitHub 风格扩展

在正确的时间获得正确的指导对于成功至关重要。 使用 Markdown 向项目页面、自述文件、仪表板和拉取请求注释添加丰富的格式、表格和图像。

有关 Wiki 页面支持的更多语法,请参阅 Wiki Markdown 指南

可以使用 Markdown 在以下方面提供指导:

注意

TFS 2018.2 及更高版本中支持代码存储库中的丰富 Markdown 呈现。 可以在代码存储库中创建丰富的 README.md 文件。 代码存储库中 MD 文件的 Markdown 呈现支持 HTML 标记、块引号、表情符号、图像大小调整和数学公式。 在 Wiki 中呈现 Markdown 和代码中的 MD 文件中存在奇偶校验。

重要

并非所有 Markdown 语法在所有功能中都受支持。 本文中的每个部分都标识了在行 支持语法的功能。

标头

支持:完成|的定义Markdown 小组件|拉取请求|自述文件|Wikis

使用标头构造注释。 标头可分割较长注释,使它们更易于阅读。

以哈希字符 # 作为行的开头来设置标题。 例如 ####,通过启动包含更多哈希字符的行,使用子标题组织备注。 支持最多六个级别的标题。

示例:

# This is a H1 header
## This is a H2 header
### This is a H3 header
#### This is a H4 header
##### This is a H5 header

结果:

Web 门户,标头 1 到 5

段落和换行符

支持:完成|的定义Markdown 小组件|拉取请求|自述文件|Wikis

通过将文本分解为段落或换行符,使文本更易于阅读。

拉取请求

在拉取请求注释中,选择 Enter 以插入换行符,并在新行上开始文本。

示例 - 拉取请求注释:

Add lines between your text with the **Enter** key.
Your text gets better spaced and makes it easier to read.

结果:

使用 Enter 键在文本之间添加行。

文本空间越好,更易于阅读。

Markdown 文件或小组件

在 Markdown 文件或小组件中,在换行符前输入两个空格,然后选择 Enter 以开始新段落。

示例 - Markdown 文件或小组件:

Add two spaces before the end of the line, and then select **Enter**.(space, space, Enter)
A space gets added in between paragraphs.

结果:

在行末尾添加两个空格,然后选择 Enter。

在段落之间添加空格。

块引用

支持:完成|的定义Markdown 小组件|拉取请求|自述文件|Wikis

为批注或文本设置上下文的上一批批注或文本引用。

用文本 > 前面的单行引用文本。 使用许多 > 字符嵌套带引号的文本。 使用跨多行的相同级别的 > 文本行的引号块。

示例:

> Single line quote
>> Nested quote
>> multiple line
>> quote

结果:

Markdown 中的引用

水平规则

支持:完成|的定义Markdown 小组件|拉取请求|自述文件|Wikis

若要添加水平规则,请添加一系列短划线 ---的线条。 包含该 --- 行的行上方的行必须为空。

示例:

above
 
----
below

结果:

以上


下面

强调(粗体、斜体、删除线)

支持:完成|的定义Markdown 小组件|拉取请求|自述文件|Wikis

可以通过对字符应用粗体、斜体或删除线来强调文本:

  • 要应用斜体:将文本括在星号 * 或下划线 _
  • 要应用粗体:将文本括在双星号 ** 中。
  • 要应用删除线:将文本括在双波浪号 ~~ 中。

合并这些元素以将强调应用于文本。

注意

没有支持下划线文本的 Markdown 语法。 在 Wiki 页面中,可以使用 HTML <u> 标记生成带下划线的文本。 例如, <u>underlined text</u> 生成 带下划线的文本

备注

没有支持下划线文本的 Markdown 语法。 在 TFS 2018.2 及更高版本中的 Wiki 页面中,可以使用 HTML <u> 标记生成带下划线的文本。 例如, <u>underlined text</u> 生成 带下划线的文本

示例:

Use _emphasis_ in comments to express **strong** opinions and point out ~~corrections~~  
**_Bold, italicized text_**  
**~~Bold, strike-through text~~**

结果:

Use emphasis in comments to express strong opinions and point out corrections
粗体、斜体文本粗体、删除线文本

代码突出显示

支持:拉取请求|自述文件|Wikis

使用代码突出显示块突出显示建议的代码段。 若要指示代码范围,请在块的开头和末尾用三个反杆引号 (```) 换行。 若要指示代码内联,请用一个反杆引号包装它, ` () 。

注意

Markdown 小组件中输入的代码突出显示会将代码呈现为纯预格式化文本。

示例:

```
sudo npm install vsoagent-installer -g  
```

结果:

sudo npm install vsoagent-installer -g

示例:

To install the Microsoft Cross Platform Build & Release Agent, run the following: `$ sudo npm install vsoagent-installer -g`.

结果:

若要安装 Microsoft 跨平台生成&发布代理,请运行以下命令: $ sudo npm install vsoagent-installer -g


在 Markdown 文件中,行开头有四个空格的文本会自动转换为代码块。

为代码块设置语言标识符,以在 highlightjs 版本 v9.10.0 中为任何受支持的语言启用语法突出显示。

``` language
code
```

更多示例:

``` js
const count = records.length;
```
const count = records.length;

``` csharp
Console.WriteLine("Hello, World!");
```
Console.WriteLine("Hello, World!");

受支持:Markdown 小组件|拉取请求|自述文件|Wikis

使用表组织结构化的数据。 表对于描述函数参数、对象方法和其他具有明确名称的说明映射的数据特别有用。 可以在拉取请求、wiki 和 Markdown 文件(如 README 文件和 Markdown 小组件)中设置表的格式。

  • 将每个表行放在其自己的行上
  • 使用竖线 | 分隔表单元格
  • 表的前两行在表中设置列标头和元素的对齐方式
  • 在划分表的标头和正文时,使用冒号 (:) 来指定列的对齐方式(左对齐、居中、右对齐)
  • 若要开始新行,使用 HTML 换行符标记 (<br/>)(在 Wiki 中有效,在其他位置无效)
  • 请确保以 CR 或 LF 结束每一行。
  • 工作项或拉取请求之前和之后需要空格, (PR) 表单元格中提及。

示例:

| Heading 1 | Heading 2 | Heading 3 |  
|-----------|:-----------:|-----------:|  
| Cell A1 | Cell A2 | Cell A3 |  
| Cell B1 | Cell B2 | Cell B3<br/>second line of text |  

结果:

标题 1 Heading 2 Heading 3
Cell A1 Cell A2 Cell A3
Cell B1 Cell B2 Cell B3
second line of text

列表

支持:完成|的定义Markdown 小组件|拉取请求|自述文件|Wikis

使用列表组织相关项。 可以为排序列表添加编号,或者为未排序的列表仅添加项目符号。

排序列表以数字开头,后跟每个列表项和句号。 未排序的列表以 - 开头。 在新行上开始每个列表项。 在 Markdown 文件或小组件中,在换行符开始新段落之前输入两个空格,或连续输入两个换行符以开始新段落。

排序或编号列表

示例:

1. First item.
1. Second item.
1. Third item.

结果:

  1. First item.
  2. Second item.
  3. Third item.

项目符号列表

示例:

- Item 1
- Item 2
- Item 3

结果:

  • 第 1 项
  • 第 2 项
  • 第 3 项

嵌套列表

示例:

1. First item.
   - Item 1
   - Item 2
   - Item 3
1. Second item.
   - Nested item 1
      - Further nested item 1
      - Further nested item 2
      - Further nested item 3
   - Nested item 2
   - Nested item 3

结果:

  1. First item.
    • 第 1 项
    • 第 2 项
    • 第 3 项
  2. Second item.
    • Nested item 1
      • 进一步嵌套的项目 1
      • 进一步嵌套的项目 2
      • 进一步嵌套的项 3
    • Nested item 2
    • Nested item 3

支持:完成|的定义Markdown 小组件|拉取请求|自述文件|Wikis

在拉取请求注释和 Wiki 中,HTTP 和 HTTPS URL 会自动格式化为链接。 可以通过输入 # 键和工作项 ID,然后从列表中选择工作项,链接到工作项。

通过在反斜杠 () \ 前缀来#避免工作项的自动建议。 如果要用于 # 颜色十六进制代码,此操作可能很有用。

在 Markdown 文件和小组件中,可以使用标准 Markdown 链接语法为 URL 设置文本超链接:

[Link Text](Link URL)

链接到同一 Git 或 TFVC 存储库中的另一个 Markdown 页面时,链接目标可以是存储库中的相对路径或绝对路径。

欢迎页面支持的链接:

  • 相对路径: [text to display](target.md)
  • Git 中的绝对路径: [text to display](/folder/target.md)
  • TFVC 中的绝对路径: [text to display]($/project/folder/target.md)
  • URL: [text to display](http://address.com)

Markdown 小组件支持的链接:

  • URL: [text to display](http://address.com)

Wiki 支持的链接:

  • Wiki 页面的绝对路径: [text to display](/parent-page/child-page)
  • URL: [text to display](http://address.com)

注意

2017.1 及更高版本不支持指向文件共享 file:// 上文档的链接。 出于安全目的,已实施此限制。

有关如何从欢迎页面或 Markdown 小组件指定相对链接的信息,请参阅 源代码管理相对链接

示例:

[C# language reference](/dotnet/csharp/language-reference/)

结果:

C# 语言参考

源代码管理文件的链接根据是在欢迎页面还是 Markdown 小组件中指定它们,以不同的方式解释。 系统按如下所示解释相对链接:

  • 欢迎页: 相对于存在欢迎页的源代码管理存储库的根目录
  • Markdown 小组件: 相对于团队项目集合 URL 基

例如:

欢迎页面 Markdown 小组件等效
/BuildTemplates/AzureContinuousDeploy.11.xaml /DefaultCollection/Fabrikam Fiber/_versionControl#path=$/Tfvc Welcome/BuildTemplates/AzureContinuousDeploy.11.xaml
./page-2.md /DefaultCollection/Fabrikam Fiber/_versionControl#path=$/Tfvc Welcome/page-2.md

在 Markdown 文件中,定位点 ID 在呈现为 HTML 时分配给所有标题。 该 ID 为标题文本,空格替换为短划线 (-) 且字母全小写。 一般情况下,以下约定适用:

  • 将忽略文件名中的标点符号和前导空格
  • 大写字母转换为下写字母
  • 字母之间的空格转换为短划线 () 。

示例:

###Link to a heading in the page

结果:

到某部分的定位标记链接的语法...

[Link to a heading in the page](#link-to-a-heading-in-the-page)

ID 都是小写的,并且链接区分大小写,因此请务必使用小写,即使标题本身使用大写。

还可以引用另一个 Markdown 文件中的标题:

[text to display](./target.md#heading-id)  

在 Wiki 中,还可以引用另一页中的标题:
[text to display](/page-name#section-name)

映像

受支持:Markdown 小组件|拉取请求|自述文件|Wikis

若要突出显示问题或使事情更有趣,可以向拉取请求中的以下方面添加图像和动画 GIF:

  • 注释
  • Markdown 文件
  • Wiki 页面

使用以下语法添加图像:

![Text](URL)
方括号中的文本描述要链接的图像,URL 指向图像位置。

示例:


![Illustration to use for new users](https://azurecomcdn.azureedge.net/cvt-779fa2985e70b1ef1c34d319b505f7b4417add09948df4c5b81db2a9bad966e5/images/page/services/devops/hero-images/index-hero.jpg)


结果:

链接图像插图

图像文件的路径可以是 Git 或 TFVC 中的相对路径或绝对路径,就像链接中另一个 Markdown 文件的路径一样。

  • 相对路径: ![Image alt text](./image.png)
  • Git 中的绝对路径: ![Image alt text](/media/markdown-guidance/image.png)
  • TFVC 中的绝对路径: ![Image alt text]($/project/folder/media/markdown-guidance/image.png)
  • 调整图像大小: IMAGE_URL =WIDTHxHEIGHT

    备注

    请务必在等号前包含空格。

    • 示例:![Image alt text]($/project/folder/media/markdown-guidance/image.png =500x250)
    • 还可以通过退出 HEIGHT 值来仅指定 WIDTH: IMAGE_URL =WIDTHx

清单或任务列表

支持:拉取请求|Wikis

轻型任务列表是作为拉取请求创建者或审阅者在 PR 说明或 Wiki 页面中跟踪操作进度的好方法。 选择 Markdown 工具栏以开始或将格式应用于所选文本。

可以使用 [ ][x] 支持清单。 清单前面有任一 -<space> 数字或 1.<space> (任何数字) 。

示例 - 将任务列表 Markdown 应用于突出显示的列表

将 Markdown 任务列表格式应用于 PR 中的突出显示列表

添加任务列表后,可以选中复选框以将项目标记为已完成。 这些操作以 [] 和 [x] 表示并存储在 Markdown 中的注释中。

选中复选框,将项目标记为已完成。

示例 - 将列表格式化为任务列表

- [ ] A  
- [ ] B  
- [ ] C  
- [x] A  
- [x] B  
- [x] C  


结果:

清单

备注

不支持表单元格中的清单。

表情

支持:拉取请求|Wikis

在拉取请求注释和 Wiki 页面中,可以使用表情符号添加字符并响应请求中的注释。 输入你感觉被 : 字符包围的内容,以在文本中获取匹配的表情符号。 支持 完整的表情符号集

示例:

:smile:
:angry:

结果:

Markdown 中的表情符号

若要转义表情符号,请使用 “字符将其括起来。

示例:

`:smile:` `:)` `:angry:`

结果:

:smile: :) :angry:

忽略或转义 Markdown 语法以输入特定字符或文本字符

支持:完成|的定义Markdown 小组件|拉取请求|自述文件|Wikis

语法

示例/说明

若要插入以下字符之一,请使用 \ (反斜杠) 前缀。
&#92;反斜線
&#96;、反杆
&#95;强调
{},大括号
[]、方括号
()括弧
#,哈希标记
+、加号 -、减号 (连字符) .,句点
!,感叹号 *,星号

有关插入特殊字符的一些示例:
输入 &#92;&#92; 以获取 \
输入 &#92;&#95; 获取 _
输入 &#92;# 以获取#
输入 &#92;( 以获取 (
输入 &#92;. 以获取 。
输入 &#92;! 以获取!
输入 &#92;* 以获取 *

Attachments

支持:拉取请求|自述文件|Wikis

在拉取请求注释和 Wiki 页面中,可以附加文件来说明你的观点,或者提供更详细的建议背后的推理。 若要附加文件,请将其拖放到批注字段或 Wiki 页面编辑体验中。 还可以选择批注框右上角的 剪纸或 Wiki 页面中的格式窗格。

Web 门户、拉取请求、通过拖放 i 附加文件

如果剪贴板中有图像,则可以将其从剪贴板粘贴到批注框或 Wiki 页面中,并直接呈现到批注或 Wiki 页面中。

附加非图像文件会在批注中创建指向该文件的链接。 更新括号之间的说明文本以更改链接中显示的文本。 附加的图像文件直接呈现到批注或 Wiki 页面中。 保存或更新带有附件的注释或 Wiki 页面后,可以看到附加的图像并选择用于下载附加文件的链接。

附件支持以下文件格式。

类型 文件格式
代码 CS (.cs) 、可扩展标记语言 (.xml) 、JavaScript 对象表示法 (.json) , 超文本标记语言 (.html、.htm) 、Layer (.lyr) 、Windows PowerShell 脚本 (.ps1) 、Roshal Archive (.rar) 、远程桌面连接 (.rdp) 、结构化查询语言 (.sql) - 注意:PR 注释中不允许使用代码附件
压缩文件 ZIP (.zip) 和 GZIP (.gz)
文档 Markdown (.md) 、Microsoft Office Message (.msg) 、Microsoft Project (.mpp) 、Word (.doc 和 .docx) 、Excel (.xls、.xlsx 和 .csv) 、Powerpoint (.ppt 和 .pptx) 、文本文件 (.txt) 和 PDF (.pdf)
映像 PNG (.png) 、GIF (.gif) 、JPEG (.jpeg和.jpg) 图标 (.ico)
Visio VSD (.vsd 和 .vsdx)
视频 MOV (.mov) 、MP4 (.mp4)

备注

拉取请求中不支持所有文件格式,例如 Microsoft Office 消息 (.msg) 文件。

数学表示法和字符

支持:拉取请求|Wikis

Wiki 页面和拉取请求都支持内联和块 KaTeX 表示法。 包含以下受支持的元素:

  • 符号
  • 希腊文字母
  • 数学运算符
  • 权力和索引
  • 分数和二项式
  • 其他 KaTeX 支持的元素

若要包括数学表示法,请将数学表示法与符号 $ 、内联表示法和 $$ 块括起来,如以下示例所示:

注意

Wiki 页面中支持此功能,并请求 TFS 2018.2 或更高版本。

示例:希腊文字符

$
\alpha, \beta, \gamma, \delta, \epsilon, \zeta, \eta, \theta, \kappa, \lambda, \mu, \nu, \omicron, \pi, \rho, \sigma, \tau, \upsilon, \phi, ...
$  


$\Gamma,  \Delta,  \Theta, \Lambda, \Xi, \Pi, \Sigma, \Upsilon, \Phi, \Psi, \Omega$

结果:

希腊文字母

示例:代数表示法

Area of a circle is $\pi r^2$

And, the area of a triangle is:

$$
A_{triangle}=\frac{1}{2}({b}\cdot{h})
$$

结果:

代数表示法

示例:求和和整型

$$
\sum_{i=1}^{10} t_i
$$


$$
\int_0^\infty \mathrm{e}^{-x}\,\mathrm{d}x
$$     

结果:

总和整型。