Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022 |Azure DevOps Server 2020
Important
选择与平台和版本相对应的本文的版本。 版本选择器位于目录上方。 查找 Azure DevOps 平台和版本。
本文介绍将 Markdown (.md) 格式与 Azure DevOps 功能(包括 Wiki 页面)配合使用的基本语法。 Markdown 语法允许向页面内容添加特殊格式,如标题、列表、表和图像。 使用 Markdown 格式化 README 文件、仪表板、拉取请求内容等。
有两种格式设置选项:常见的 Markdown 约定和 GitHub 的 Markdown 扩展。
支持 Azure DevOps 功能
使用 Markdown 语法,可以使用标题、引用链接、粗体文本和文件附件设置内容的格式。 并非所有 Markdown 语法都适用于 Azure DevOps 中的每个功能。 支持 Markdown 语法的关键功能包括:
- 项目里程碑的“完成定义”(看板)的标准。
- 通过Markdown 小组件展示团队目标和指标。
- 拉取 Git 存储库中项目文件的请求。
- Git 存储库中的自述文件可帮助参与者。
- 团队项目 Wiki 中页面内容的 Wiki 文件。
Note
Azure DevOps 中的 Markdown 不支持 JavaScript 或 iframe。 例如,不能嵌入交互式元素,如倒计时计时器。
以下列表显示了每个功能支持哪些 Markdown 元素,并链接到本文中的语法部分:
| Markdown 类型 | Done | Widget | PR | README | Wiki |
|---|---|---|---|---|---|
| Headers | ✓ | ✓ | ✓ | ✓ | ✓ |
| 段落和换行符 | ✓ | ✓ | ✓ | ✓ | ✓ |
| 块引号 | ✓ | ✓ | ✓ | ✓ | ✓ |
| 水平规则 | ✓ | ✓ | ✓ | ✓ | ✓ |
| Emphasis | ✓ | ✓ | ✓ | ✓ | ✓ |
| 代码突出显示 | ✓ | ✓ | ✓ | ||
| 建议更改 | ✓ | ||||
| Tables | ✓ | ✓ | ✓ | ✓ | |
| Lists | ✓ | ✓ | ✓ | ✓ | ✓ |
| Links | ✓ | ✓ | ✓ | ✓ | ✓ |
| Images | ✓ | ✓ | ✓ | ✓ | |
| 清单或任务列表 | ✓ | ✓ | |||
| Emojis | ✓ | ✓ | |||
| 忽略或转义 Markdown | ✓ | ✓ | ✓ | ✓ | ✓ |
| Attachments | ✓ | ✓ | |||
| 数学表示法 | ✓ | ✓ |
Headers
使用 Markdown 标头构建内容。 页眉将页面内容的长部分分隔为更易于阅读的部分。 可以在完成定义(看板)、Markdown 组件、拉取请求、自述文件和 Wiki 文件中添加标题。
若要定义顶级标头,请使用单个哈希标记 # 后跟标题文本(例如 # Get started on the project)开始一行。 可以通过在行首使用多个井号(例如 ## Request permissions 或 ### Send feedback)来使用副标题组织注解。 最多可以使用六个哈希标记来创建标头的大小级别。
示例:在 Markdown 中创建标头
以下 Markdown 创建顶级标头(H1)和四个级别的子标题(H2、H3、H4 和 H5):
# This is a top-level (H1) header
## This is a subheader (H2)
### This is a lower subheader (H3)
#### This is an H4 header
##### This is an H5 header
下图显示了 Markdown 的已发布视图:
段落和换行符
Important
Azure DevOps Markdown 处理换行符与大多数其他 Markdown 实现不同。 若要在段落中创建换行符(软返回),请在按 Enter 之前在行末尾添加两个空格。 如果在没有两个空格的情况下按 Enter ,则发布的输出不包括换行符。
将长节分成较小的段落或插入换行符,使文本更易于阅读。
在 “完成定义”(开发板)、 Markdown 小组件、拉取请求、自述文件和 Wiki 文件中添加段落和换行符。
示例:在 Markdown 中添加换行符和拉取请求
拉取请求中的注释接受 Markdown,例如 文本的粗体 和 斜体 样式。 使用 Enter 键插入换行符以在下一行上开始新文本或添加行之间的间距。
在 Azure DevOps 中,若要在段落中创建换行符,请在按 Enter 之前在行末尾添加两个空格:
This is the first line with two spaces at the end.
This is the second line, which will appear directly below the first.
这呈现为:
这是末尾有两个空格的第一行。
这是第二行,它将显示在第一行正下方。
如果在没有两个尾随空格的情况下按 Enter ,则行合并为已发布输出中的单个段落。
若要创建新段落(中间有空白行),请按 Enter 两次:
This is the first paragraph.
This is the second paragraph.
下图显示了拉取请求注解中用于控制间距的 Markdown 的已发布视图:
示例:在 Markdown 文件或小组件中添加换行符
在 Markdown 文件或 Markdown 小组件中,分隔文本行以创建新段落。 在换行符前添加两个空格(空格 键),然后按 Enter 开始新段落。
Add two **Space** characters before the end of the line and then press **Enter**.
The next paragraph starts on a new line. The two paragraphs are separated by a blank line.
下图显示了小组件用于控制间距的 Markdown 的已发布视图:
块引号
引用评论或文本以设定新评论或文本的上下文。 带引号的文本从左边距缩进,并在引文部分沿着左边显示一条竖线。
可以在完成定义(看板)、Markdown 组件、拉取请求、自述文件和 Wiki 文件中添加块引用。
若要引用单行文本或段落块,请将右尖括号 > 插入到第一个文本之前。
若要创建嵌套引号,请在文本前面插入两个或多个括号。 嵌套的引文在左边距进一步缩进,并且引用部分旁边有双重的垂直线。
示例:使用方括号引用文本
> Insert a bracket ">" before the text to quote the line of text.
This text references the quoted sentence.
> To quote a paragraph, insert a bracket ">" before the first text. The other lines in the paragraph are also included in the block quote. Notice the entire paragraph is indented from the left margin and highlighted with a vertical line.
This text references the quoted paragraph.
>> Insert two or more brackets ">>" before the text to create a nested quote.
>>> Nested quotes can also be multiple lines of text. Notice the nested quote text is indented further from the left margin and a vertical line is drawn for each level of bracket you insert.
This text references the nested block quotes.
下图显示了引用文本的 Markdown 的已发布视图:
水平规则
带水平规则的下划线或分隔内容和页面部分。 可以在 “完成定义 (看板)”、Markdown 小部件、Pull 请求、README 文件和 Wiki 文件中添加分隔符。
若要添加水平规则,请输入一个空白行,然后输入另一行,其中包含三个连字符(短划线)。 ---
示例:插入水平分隔符
以下 Markdown 创建两个水平规则:
Text **above** a horizontal rule
<!-- Blank -->
---
Text **between** horizontal rules
<!-- Blank -->
---
Text **under** a horizontal rule
下图显示了适用于水平规则的 Markdown 已发布视图。
强调(粗体、斜体、删除线)
Markdown 允许通过多种方式强调文本:
| Style | Example | Markdown |
|---|---|---|
| Italics | 斜体文本 | 将文本括在一个星号 * 或下划线 _ 字符中。 |
| 粗 体(强) | 加粗文本 | 将文本括在双星号 ** 或下划线 __内。 |
| Strikethrough |
|
将文本括在双波浪号 ~~内。 |
合并这些样式以添加强调。 可以在 完成之定义(板)、Markdown 组件、拉取请求、Readme 文件和 Wiki 文件中使用强调样式。
Note
Markdown 没有用于下划线文本的语法。 在 Wiki 页面中,可以使用 HTML 下划线元素为文本添加下划线 <u> 。
示例:强调文本
以下是一些 Markdown 格式文本,用于展示如何以不同和组合样式来强调文本:
**Italics** highlights text in a larger block like _new terminology_.
**Bold** (strong) adds presence to text, such as **Important!**
**Strikethrough** is useful for corrections like "Send feedback ~~to the team~~."
Combine styles for other effects, such as ~~__Content removed__~~ and **_Milestones_**.
下图显示了 Markdown 文本强调样式在发布时的表现:
代码突出显示
通过使用代码突出显示,将文本块或内联文本作为代码进行突出显示。 可以在拉取请求、自述文件和 wiki 文件中添加突出显示的代码。
若要将文本块格式化为代码,请将文本块括在三个反引号(```)字符内。 开始和结束部分的反引号必须与要突出显示的代码块位于单独的行上。
还可以将较大文本块中的一部分文本格式化为内联代码段。 对于此样式,请将内联代码括在单个反引号中。 反引号与文本在同一行,而不是在单独的行上。
在 Markdown 小组件中,高亮显示的代码会呈现为普通的预格式文本。
示例:在 Markdown 小组件中突出显示代码块
此示例演示如何在 Markdown 控件中突出显示文本块代码:
<!-- ``` Three backticks to start block " -->
sudo npm install vsoagent-installer -g
<!-- ``` Three backticks to end block -->
此示例展示了作为代码突出显示的文本块的Markdown格式发布视图:
sudo npm install vsoagent-installer -g
示例:在 Markdown 小组件中突出显示内联代码
在此示例中,演示如何在 Markdown 控件中将一部分文本标记为内联代码段:
To install the Microsoft Cross Platform Build and Release Agent, run the following: <!-- ` - Single backtick --> $ sudo npm install vsoagent-installer -g <!-- ` - Single backtick -->
此图显示了作为内联代码段突出显示的部分文本的 Markdown 已发布视图:
示例:将文本转换为代码,识别代码语言
还有一种方法可将文本块转换为代码。 当 Markdown 中的一行文本以左边距中的四个空格开头时,文本会自动转换为代码块。 此示例演示了此行为:
This article is a Markdown file (_.md_). This line of text automatically formats as code because the line starts with four spaces in the left margin.
首选方法是将文本括在三个反引号中,以便可以指定语言标识。 该标识符根据指定语言的约定将语法突出显示应用于代码。 标识符标签适用于大多数编程语言,如 JavaScript(js)、C# (csharp)和 Markdown(md)。 有关支持的语言列表,请参阅 突出显示 GitHub 存储库。
这些示例演示如何将文本块标识为 JavaScript 或 C# 。 在前三个反引号后添加语言标识符标签 ```md。
JavaScript
<!-- ```js - Three backticks and identifier 'js' -->
const count = records.length;
<!-- ``` - Three backticks -->
这是 JavaScript 代码的已发布视图:
const count = records.length;
C#
<!-- ```csharp - Three backticks and identifier 'csharp' -->
Console.WriteLine("Hello, World!");
<!-- ``` - Three backticks -->
这是 C# 代码的已发布视图:
Console.WriteLine("Hello, World!");
建议更改
GitHub 拉取请求支持 注释 功能,让参与者提供输入和建议更改。 为文件中的特定行或多行添加注释。 拉取请求作者通过选择 “应用更改”在批注中应用建议的更改。 此操作将更改提交到拉取请求并启动构建。
在 Markdown 小组件中添加包含代码突出显示的注释时,代码以差异格式显示。 对修改行中的更改进行了注释,以显示差异。 减号 - 表示已删除的内容,加号 + 突出显示新内容。
示例:在拉取请求注释中建议更改
此示例演示如何在 Markdown 小组件中为拉取请求建议代码更改。 在此方案中,代码块使用标识符 suggestion:
<!-- ```suggestion - Three backticks and identifier 'suggestion' -->
for i in range(A, B+100, C):
<!-- ``` - Three backticks -->
下图显示了注释建议的差异视图。
有关详细信息,请参阅 “建议批注中的更改”。
Tables
使用 Markdown 表组织结构化数据。 在 Markdown 部件、拉取请求、自述文件和 Wiki 文件中添加表格。 表对于使用明确的名称到描述映射描述函数参数、对象方法和其他数据特别有用。
以下是有关在 Markdown 中使用表的一些要点:
- 在单独的行上创建每一行,并用回车符 (CR) 或换行符 (LF) 结束每一行。
- 使用连字符
-和管道符号|创建列,例如|---|---|---|。 - 定义第一行中的列标题,例如
| First | Middle | Last |。 - 使用位于第二行中的冒号
:设置列对齐方式(左对齐、居中、右对齐),例如|:--|:--:|--:|。 - 在表文本中使用管道符号时,使用反斜杠
\|转义管道符号,例如| Describe the pipe \| symbol. | - 使用 HTML 分隔符标记
<br/>在单元格中添加换行符。 此方法在 Wiki 中工作,但不适用于其他地方。 - 在表文本中提及的工作项或拉取请求前后添加空白空间。
示例:创建表
以下示例演示如何在 Markdown 中创建包含三列和五行的表:
| Feature | Prerelease | Release target |
|:---|:---:|---:|
| Calculator | No | 10/27/2025 |
| Graphs | Yes | 8/18/2025 |
| Mail | No | 2/16/2025 |
| Tables | Yes | 10/27/2025 |
| Search | No | 1/5/2026 |
以下是 Markdown 表在发布时的外观:
| Feature | Prerelease | 发布目标 |
|---|---|---|
| Calculator | No | 10/27/2025 |
| Graphs | Yes | 8/18/2025 |
| No | 2/16/2025 | |
| Tables | Yes | 10/27/2025 |
| 搜寻 | No | 1/5/2026 |
Lists
使用不同类型的列表来组织相关项。 使用有序列表显示项的顺序。 使用项目符号列出不需要按顺序排列的相关项目。 在 完成定义(开发板)、Markdown 控件中添加列表样式,拉取请求、自述文件和 Wiki 文件。
以下是有关在 Markdown 中使用列表的一些要点:
- 在单独的行上指定每个列表项。
- 在有序列表中,每项应以数字加句点的形式开头,如
1. First item 1. Next item.。发布系统会自动对列表进行编号。 - 使用连字符
-或星号*(如- First point - Next point)在无序列表中启动每个项。 - 检查 Markdown 文件或小组件中列表前后的间距:
- 对于第一个列表,请在列表前后添加一个空白行。
- 对于嵌套列表,请使用正确的缩进。 嵌套列表之前或之后不需要额外的换行符。
示例:创建编号列表(已排序)
此示例演示如何使用 Markdown 为序列中的项创建编号列表:
<!-- Blank -->
1. First step in the procedure.
1. Second step.
1. Third step.
<!-- Blank -->
下面是 Markdown 排序列表的已发布视图:
- 过程中的第一步。
- 第二步。
- 第三步。
示例:创建项目符号(无序)列表
此示例演示如何使用 Markdown 创建相关项的无序列表:
<!-- Blank -->
- First item in the list.
- Next item.
- Last item.
<!-- Blank -->
下面是 Markdown 未排序列表的已发布视图:
- 列表中的第一项。
- 下一项。
- 最后一项。
示例:嵌套列表
在列表中创建列表并混合样式。
此示例演示如何在 Markdown 中创建一个编号列表,其中包含嵌套的项目符号列表:
<!-- Blank -->
1. First step in the procedure.
- First item in a nested list.
- Next item.
- Last item.
1. Second step.
- First item in a nested list.
- First item in a subnested list.
- Next item.
- Last item.
1. Third step.
1. First substep.
1. Next substep.
1. Last substep.
<!-- Blank -->
下面是包含嵌套列表的列表的已发布视图:
- 过程中的第一步。
- 嵌套列表中的第一项。
- 下一项。
- 最后一项。
- 第二步。
- 嵌套列表中的第一项。
- 子嵌套列表中的第一项。
- 下一项。
- 最后一项。
- 嵌套列表中的第一项。
- 第三步。
- 第一个子步骤。
- 下一个子步骤。
- 最后一个子步骤。
Links
通过输入哈希标记 # 后跟工作项 ID 链接到工作项,然后从列表中选择工作项。 在 “完成”定义(开发板)、 Markdown 小组件、拉取请求、自述文件和 Wiki 文件中添加不同类型的链接。
以下是有关在 Markdown 中使用链接的一些要点:
链接的标准 Markdown 语法为
[Link display text](Link path)。在拉取请求注释和 wiki 中,以 HTTP 或 HTTPS 开头的 URL 会自动格式化为链接。
如果以其他方式(如颜色十六进制代码)使用哈希标记
#,可以通过将哈希标记#作为反斜杠\前缀来避免对工作项的自动建议。在 Markdown 文件和小组件中,使用标准 Markdown 链接语法为 URL 创建文本超链接。
Link path可以是相对的,也可以是绝对的。以下示例演示如何在 Markdown 中指定相对链接。 文本以超链接的形式呈现:
For more information, see the [C# language reference](/dotnet/csharp/language-reference/).下面是链接的已发布视图:
有关详细信息,请参阅 C# 语言参考。
支持的链接
链接到同一 Git 或 Team Foundation 版本控制(TFVC)存储库中的另一个 Markdown 页面时,请将链接目标指定为相对路径或绝对路径。
Note
出于安全原因,不支持指向文件共享上的file://...文档的链接。
以下部分显示了不同 Markdown 方案的示例。
示例:欢迎页的相对链接
下面是 Wiki 欢迎页中相对链接的一些示例:
相对路径:
[Display text](target.md)Git 中的绝对路径:
[Display text](/folder/target.md)TFVC 中的绝对路径:
[Display text]($/project/folder/target.md)URL:
[Display text](http://address.com)
示例:Markdown 小组件相对链接
以下示例显示了在 Markdown 组件中的相对链接:
- URL:
[Display text](http://address.com)
示例:Wiki 网页相对链接
下面是 Wiki 页面中相对链接的一些示例:
- Wiki 页面的绝对路径:
[Display text](/parent-page/child-page) - URL:
[Display text](http://address.com)
源代码管理相对链接
源代码管理文件的相对链接在欢迎页和 Markdown 小组件中以不同的方式解释:
示例:欢迎页的相对链接
欢迎页中的相对链接相对于存在欢迎页的源代码管理库根目录。 下面是一些示例:
- /BuildTemplates/AzureContinuousDeploy.11.xaml
- ./page-2.md
示例:Markdown 小组件相对链接
Markdown 小组件中的相对链接相对于团队项目集合 URL 基路径。 下面是一些示例:
- /DefaultCollection/Fabrikam/versionControl#path=$/TFVC-Welcome/BuildTemplates/AzureContinuousDeploy.11.xaml
- /DefaultCollection/Fabrikam/versionControl#path=$/TFVC-Welcome/page-2.md
定位点链接
当 Markdown 文件呈现为 HTML 时,系统将定位点 ID 分配给页面上的每个标头。 ID 是标头文本的转换形式。 系统将应用以下更改来创建 ID:
- 用连字符替换标题文本中的空格
- - 将大写字母更改为小写
- 忽略大多数特殊字符,例如
#,@$ - 忽略大多数标点符号,例如
:,"?
使用哈希标记 # 链接到文档中的标题,如中所示 [Display text](#<header-anchor>)。
以下示例展示一个标题及其对应锚点 ID 的链接:
#### Team #1 : Release Wiki!
Welcome to the Release wiki. For more information, [Visit the Project Wiki](#team-1--release-wiki).
下面是已发布的视图:
团队 #1:发布 Wiki!
欢迎使用 Release Wiki。 有关详细信息, 请访问 Project Wiki。
通过指定包含锚点 ID 的文件名,链接到另一个 Markdown 文件中的标题:
[Set up a project wiki](about-readme-wiki.md#set-up-a-project-wiki).
Wiki 页面也是 Markdown 文件。 从另一页引用 Wiki 中一页中的标题:
Welcome to the Wiki!
- [Get Started](/get-started-page)
- [Contribute content](/get-started-page#contribute)
- [Send Feedback](/contact-page#send-feedback)
Images
使用图像和动画 GIF 来演示概念,并为内容添加视觉兴趣。 在 Markdown 小组件、拉取请求、自述文件和 Wiki 文件中添加图像。
对图像或动画 GIF 使用标准 Markdown 语法: 。 此语法类似于链接,但行以感叹号 ! 开头。
Image alt text 描述图像,并在用户将鼠标悬停在已发布视图中的图像上时显示。
Image path 标识图像位置。
下面是向 Markdown 文件添加插图的示例:

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

图像大小
使用 Image-path =Image-widthxImage-height 语法设置图像大小:
-
x字母表示宽度乘高表达式中的“by”。 - 不要在字母
x前后添加空格。 - 在等号
=前加上一个空格。 - 若要仅指定宽度,请使用
Image-path =Image-widthx。 你仍然需要包括字母x。
下面是宽度为 500 且高度为 250 的图像的 Markdown 语法示例:

清单或任务列表
使用轻型任务列表跟踪任务和行动项的进度。 在拉取请求和 wiki 文件中添加清单或任务列表。 此功能在拉取请求说明中非常有用,用于跟踪审阅者输入或在 Wiki 项目页面中跟踪任务状态。
示例:在 Markdown 中创建清单
直接在 Markdown 中创建清单:
- 使用空方括号
[<space>]创建新任务。 - 通过将字母
x包括在方括号[x]内显示已完成的任务。 - 在每个任务前面加上连字符和空格
-<space>[<space>]或数字和空格1.<space>[<space>]。 使用任何数字。 - 请勿在 Markdown 表中使用清单。
以下示例创建一个清单,其中包含四个项目,其中第一项标记为已完成:
- [x] Project plan
- [ ] Draft 1 code
- [ ] Draft 2 code
- [ ] Test plan
以下是核对清单的已发布视图:
发布清单后,用户通过选中列表中的项目复选框将项目标记为已完成。
示例:将任务列表 Markdown 应用于所选文本
在网页门户中选择现有文本,并使用 Markdown 工具栏上的操作来应用清单格式。 以这种方式添加清单或任务后,请在 Markdown 中编辑列表或任务。
下图显示了如何将 Markdown 工具栏上的 “任务列表 ”样式应用于所选文本:
通过选中列表中的任务框将任务标记为已完成:
表情符号反应
在拉取请求和 Wiki 文件中添加表情符号反应。 使用表情符号反应增添趣味,并对请求中的评论做出反应。
输入情感或表达式的名称,例如 smile ,并将文本括在冒号 : 字符中。 在 Markdown 的已发布视图中,输入将转换为相应的 表情符号图形。 Azure DevOps 中的 Markdown 支持大多数 GitHub 表情符号图形。 它不支持自定义表情符号。:bowtie:
示例:在拉取请求中添加表情符号反应
此示例演示如何在拉取请求评论中使用 Markdown 添加表情反应:
The code review received :+1::+1: and the team is :smile:
此图显示了表情符号反应的已发布视图:
示例:在 Markdown 中转义表情符号语法
此示例演示如何使用 Markdown 中的反斜杠字符转义表情符号 \ 语法:
Markdown syntax for some emoji reactions:
- **Happy** \:smile:
- **Angry** \:angry:
- **Sad** \:cry:
此图显示了 Markdown 的已发布视图,其中显示了表情符号语法:
在拉取请求评论中,使用两个反斜杠 \\ 来转义表情符号语法转换。
特殊字符作为文字文本
使用反斜杠 \ 作为 Markdown 中的转义字符将特殊字符发布为文本文本。 反斜杠告知发布系统将特殊字符显示为原样文本,而非对其进行解释或转换。
在 “完成定义”(开发板)、 Markdown 小组件、拉取请求、自述文件和 Wiki 文件中使用忽略和转义语法。
示例:发布特殊字符
Markdown 语法“将文本括在反引号中”在已发布视图中显示为 Enclose text in backticks。 发布系统将 inline code 格式应用于反引号 (`)中的文本,并且不发布反引号。
如果在反引号 (`) 前加上反斜杠(\),反引号内的文本格式不会更改,并且反引号会被发布。 此行为适用于大多数特殊字符,包括括号 ()、方括号 []、下划线 _、连字符 -、哈希标记 #、星号 *、反斜杠和反斜杠 \ 本身。
以下 Markdown 使用反斜杠 \ 字符将特殊字符显示为文本:
\\\ Code comment
Show the **\_\_**underscores**\_\_**
\# Code comment and not a **Heading**
**\(** Include the **parentheses \)**
Show the __\*__asterisks__\*__ and don't change to *italics*
下面是 Markdown 的已发布视图:
\\ 代码注释
显示 __下划线__
# 代码注释而不是 标题
( 包括 括号)
显示*星号*,不要变成斜体
Note
对于某些 Markdown,请输入反斜杠的 HTML 代码 \ ,而不是字符符号 \。
Attachments
在拉取请求注释和 Wiki 页面中附加文件。 附件有助于说明你的观点或提供有关建议的详细信息。 附件支持以下文件格式:
附件类型
文件格式
Code
C# (.cs)、可扩展标记语言(.xml)、JavaScript 对象表示法(.json)、超文本标记语言(.html、 .htm)、层(.lyr)、Windows PowerShell 脚本(.ps1)、Roshal Archive(.rar)、远程桌面连接(.rdp)、结构化查询语言(.sql)
注意:拉取请求注释不支持代码附件。
压缩文件
ZIP (.zip),GZIP(.gz)
Documents
Markdown(.md)、Microsoft Office 邮件(.msg)、Microsoft项目(.mpp)、Word(.doc、 .docx)、Excel(.xls、 .xlsx、 .csv)、PowerPoint(.ppt、.pptx)、纯文本( .txt)、可移植文档格式(.pdf)
Images
PNG(.png)、GIF(.gif)、JPEG(.jpeg、 .jpg)、图标(.ico)
Visio
VSD (.vsd, .vsdx)
Video
MOV (.mov), MP4 (.mp4)
Note
并非所有文件格式都支持为拉取请求注释中的附件,例如Microsoft Office 邮件(.msg)文件。
附加图像或文件
可以通过多种方式在“编辑”窗格中的拉取请求“批注”框或 Wiki 页面上附加图像或文件:
将文件拖到批注或 Wiki 页面上。
将剪贴板中的图像粘贴到批注或 Wiki 页面上。 该图像直接显示在批注或 Wiki 页面上。
在批注或 Wiki 页面中的“格式”窗格中选择“附加”图标,然后选择要附加的文件:
附加非图像文件时,系统会在注释或 Wiki 页面上创建指向该文件的链接。 更改方括号中的链接显示文本,如中所示 [Updated link display text](LINK URL)。 发布页面或批注时,用户选择用于访问附件的链接。
数学表示法和字符
可以在拉取请求注释和 wiki 文件中使用数学表示法和字符。 支持内联表示法和块 KaTeX 表示法,其中包括以下元素:
- Symbols
- 希腊文字母
- 数学运算符
- 幂和指数
- 分数和二项式
- 其他 KaTeX 支持的元素
在 Markdown 文件中,数学表示法括在美元 $ 符号内。 若要与其他文本内联创建表达式,请用单美元符号 $ A + B = C $将表示法括起来。 对于块表达式,请用两个美元符号来开始和结束块表达式$$ A = 1 \ B = 2 \ C = A + B $$。
示例:列出希腊字符
以下示例通过添加 Markdown 文件中的代码片段列出数学表示法中使用的希腊字符。 请注意,代码段的语言标识符是 KaTeX,而不是 Markdown md:
$
\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})
$$
下面是 Markdown 文件中表示法的已发布视图:
示例:显示总和整数
以下示例使用两个块表达式来计算和与积分:
$$
\sum_{i=1}^{10} t_i
$$
$$
\int_0^\infty \mathrm{e}^{-x}\,\mathrm{d}x
$$
下面是 Markdown 文件中表达式的预览视图:
Azure DevOps wiki 中的 Markdown
可以通过多种方式使用 Markdown 来增强 Azure DevOps wiki。 以下部分提供了各种任务的语法示例:
- 添加 Mermaid 图,如序列图、流程图和用户旅程图
- 为页面和子页创建目录(TOC)
- 配置可折叠页面部分
- 嵌入视频和 Azure Boards 查询结果
- 指向带有哈希标记
#的工作项的链接 - 为用户和组使用
@<alias>提及 - 包括 HTML 元素,例如
<font>用于富文本 - 检查页面访问计数
这些功能的可用性取决于 Azure DevOps 的版本。
使用 Mermaid 关系图
美人鱼允许使用文本和代码创建图表和可视化效果。 Azure DevOps wiki 支持以下美人鱼图类型:
有关详细信息,请参阅 美人鱼发行说明。
Limitations
在 Azure DevOps 中使用美人鱼图时,请记住以下限制:
Azure DevOps 为美人鱼图类型提供 有限的语法支持 。 不支持的语法包括大多数 HTML 标记、Font Awesome、
flowchart语法(改用graph元素)、LongArrow---->等。Internet Explorer 不支持美人鱼。 如果在 Wiki 中使用美人鱼图,图表不会在 Internet Explorer 中呈现。
示例:将美人鱼图添加到 Wiki 页面
若要向 Wiki 页面添加美人鱼图,请使用三个冒号 :开始和结束表示法。 指定 mermaid 关键字、关系图类型,例如 sequenceDiagram,并提供要说明的信息。 图表中的信息在语法中被指定为缩进部分。
以下示例演示如何向 Wiki 页面添加美人鱼图:
::: mermaid
<diagram type>
<diagam information>
:::
示例:序列图
序列图(类型 sequenceDiagram)是一个交互图,显示进程如何相互运行以及按哪个顺序运行。
以下示例演示如何将序列图添加到 Wiki 页面:
::: mermaid
sequenceDiagram
Christie->>Josh: Hello Josh, how are you?
Josh-->>Christie: Great!
Christie->>Josh: See you later!
:::
下面是序列图的已发布视图:
示例:甘特图
甘特图(类型 gantt)将每个计划任务记录为从左向右延伸的连续条。 轴 x 表示时间。 轴 y 记录任务及其完成顺序。
当你排除特定于任务的日期、时间或日期集合时,甘特图可适应这些更改。 图表向右扩展等量的天数,而不是在任务内部造成空白。
以下示例演示如何将甘特图添加到 Wiki 页面:
::: mermaid
gantt
title A Gantt chart
dateFormat YYYY-MM-DD
excludes 2022-03-16,2022-03-18,2022-03-19
section Section
A task :a1, 2022-03-07, 7d
Another task :after a1 , 5d
:::
下面是甘特图的已发布视图:
示例:流程图
流程图(类型 graph)由节点、几何形状和边缘以及箭头或线条组成。 确定 graph 关系图类型后,指定图表中信息的流方向,例如 TB; 从上到下。
以下示例创建一个包含该 graph 类型的流程图。 图形信息遵循从左到右 LR; 的方向。
Note
Azure DevOps 不支持 flowchart 图类型、箭头 ----> 语法或与 subgraph 图类型有关的链接。
:::mermaid
graph LR;
A[Hard edge] -->|Link text| B(Round edge) --> C{Decision}
C -->|One| D[Result one]
C -->|Two| E[Result two]
:::
下面是流程图的已发布视图:
示例:类图
类图(类型 classDiagram)是面向对象的编程模型的重要组成部分。 该图描述对象及其属性和方法,以及对象之间的继承。
以下示例演示如何向 Wiki 页面添加类图:
:::mermaid
classDiagram
Creature <|-- Superman
Creature <|-- Vampire
Creature <|-- Diavolo
Creature: +int size
Creature: +int weight
Creature: +isBenign()
Creature: +power()
class Superman{
+String currentName
+fly()
+heal()
}
class Vampire{
-int age
-canBite()
}
class Diavolo{
+bool is_serving
+heat()
}
:::
下面是类图的已发布视图:
示例:状态图
状态图(类型 stateDiagram)描述系统状态在从一种状态转换为另一种状态时如何更改。
以下示例演示如何向 Wiki 页面添加状态图。 此示例使用状态图类型版本 2(类型 stateDiagram-v2)。
:::mermaid
stateDiagram-v2
[*] --> Active
state Active {
[*] --> NumLockOff
NumLockOff --> NumLockOn : EvNumLockPressed
NumLockOn --> NumLockOff : EvNumLockPressed
--
[*] --> CapsLockOff
CapsLockOff --> CapsLockOn : EvCapsLockPressed
CapsLockOn --> CapsLockOff : EvCapsLockPressed
--
[*] --> ScrollLockOff
ScrollLockOff --> ScrollLockOn : EvScrollLockPressed
ScrollLockOn --> ScrollLockOff : EvScrollLockPressed
}
:::
下面是状态图的已发布视图:
示例:用户旅程图
用户旅程(类型 journey)关系图描述了完成特定更高级别的作或任务所需的步骤。
以下示例演示如何将用户旅程图添加到 Wiki 页面:
:::mermaid
journey
title Home office day
section Go to work
Wake up: 1: Me, Dog
Take shower: 2: Me
Go downstairs: 3: Me, Dog
Make coffee: 4: Me
Have a breakfast: 5: Me, Dog
Go upstairs: 3: Me, Dog
Do work: 1: Me, Dog
section Go home
Go downstairs: 3: Me, Dog
Sit down: 5: Me
:::
下面是用户旅程图的已发布视图:
示例:饼图
饼图(类型 pie)图表有助于可视化圆图中信息的百分比。 标识 pie 图表类型后,使用饼图标题指定 title 关键字。
以下示例使用标题 Fishermen in countries创建饼图:
:::mermaid
pie title Fishermen in countries
"Norway" : 684
"Sweeden" : 234
"Switzerland" : 10
:::
下面是饼图的已发布视图:
示例:要求图
要求图(类型 requirementDiagram)创建要求及其连接的可视化效果。
以下示例演示如何向 Wiki 页面添加要求关系图:
:::mermaid
requirementDiagram
requirement development_req {
id: 1
text: requirements spec.
risk: medium
verifymethod: test
}
element test_suite {
type: manual test
}
test_suite - verifies -> development_req
:::
下面是需求图的发布视图:
示例:Gitgraph 图表
git 关系图(类型 gitGraph)用于可视化 Git 操作,例如提交、分支和合并。
以下示例演示如何向 Wiki 页面添加 git 图形关系图:
::: mermaid
gitGraph
commit id: "Initial commit"
branch develop
commit id: "Develop commit 1"
commit id: "Develop commit 2"
checkout main
commit id: "Main commit 1"
merge develop id: "Merge develop into main"
branch feature
checkout feature
commit id: "Feature commit 1"
checkout develop
commit id: "Develop commit 3"
checkout feature
merge develop id: "Merge develop into feature"
:::
下面是 git 图形图表的已发布视图:
示例:实体关系图
实体关系图(类型 erDiagram)用于对系统中的实体(如数据库或应用程序)之间的关系进行建模。 这些关系图有助于理解和设计数据的结构及其相互关系。
以下示例演示如何向 Wiki 页面添加实体关系图:
::: mermaid
erDiagram
CUSTOMER {
string name
string address
}
ORDER {
int orderNumber
string product
}
CUSTOMER ||--o{ ORDER : places
:::
下面是实体关系图的已发布视图:
示例:时间线图
时间线图(类型 timeline)用于按时间顺序可视化事件,以便更轻松地跟踪进度或历史事件。
以下示例演示如何向 Wiki 页面添加日程表关系图:
::: mermaid
timeline
title Project Development Timeline
section Planning
Project kickoff : 2025-01-01
Requirements gathering : 2025-01-15
section Development
Initial development : 2025-02-01
First prototype : 2025-03-01
section Testing
Alpha testing : 2025-04-01
Beta testing : 2025-05-01
section Release
Public release : 2025-06-01
:::
下面是时间线图的已发布视图:
Wiki 页面的目录
使用 [[_TOC_]] 语法标记为您的 Wiki 页面创建目录(TOC)。 当发布系统遇到标记并确认 Wiki 页面上至少有一个标题时,它将为页面生成 TOC。 页面上的 TOC 标题为“内容”。
若要创建 TOC,可以将语法标记添加到 [[_TOC_]] Markdown 中的 Wiki 页面,或选择“更多选项”(...) >页面的“编辑”视图中的目录。
下面是有关添加 TOC 的一些要点:
-
[[_TOC_]]标记的语法是区分大小写的。 如果使用小写[[_toc_]]形式指定语法,则 TOC 可能不会呈现。 - 发布系统呈现 Markdown 页面中
[[_TOC_]]标记的第一个实例的 TOC。 它会忽略同一页上标记的其他实例。 - 可以将标记放置在
[[_TOC_]]Markdown 中的任意位置。 系统会在你在 Markdown 中放置标记的位置在页面上呈现 TOC。 - 系统仅确认由哈希标记
#语法标识的 Markdown 样式标题。 它忽略 HTML 样式标题标记。 - 系统仅使用标题文本来创建 TOC 条目。 它忽略所有额外的 HTML 和 Markdown 语法。
以下示例演示发布系统在为 TOC 创建条目时如何忽略标题的额外格式。 标题使用 斜体设置单词“旗舰”的格式,但标题的 TOC 条目将删除额外的样式。
Wiki 页面的子页表
使用 [[_TOSP_]] 语法标记为 Wiki 页面添加子页表。 页面上表格的标题为“子页面”。该表包含 Wiki 页面的每个子页的条目。
若要创建子页表,可以将语法标记添加到 [[_TOSP_]] Markdown 中的 Wiki 页面,或选择“更多选项”(...) >页面的“编辑”视图中的子页表。
下面是有关添加子页表的一些要点:
-
[[_TOSP_]]标记的语法是区分大小写的。 如果使用小写[[_tosp_]]形式指定语法,则子页表可能不会呈现。 - 发布系统会在 Markdown 页中渲染
[[_TOSP_]]标签首次出现时的子页目录表。 它会忽略同一页上标记的其他实例。 - 可以将标记放置在
[[_TOSP_]]Markdown 中的任意位置。 系统将在页面上呈现子页的表,该表位于在 Markdown 中放置标记的位置。
Wiki 页面中的可折叠部分
使用 HTML <details><summary> 语法在 Wiki 页面中添加可折叠部分。 可以使用可折叠部分来限制页面上特定内容的可见性,例如过时或存档的数据,或设置问题/答案方案。
Wiki 页面打开时,可折叠部分将关闭(已折叠),但节摘要可见。 用户可以选择标题以展开(打开)并根据需要折叠分区。
下面是有关添加可折叠部分的一些要点:
- 在
<summary>Title</summary>标签内提供该节的标题。 摘要始终显示在页面上。 - 在结束
</summary>标记后面添加一个空白行。 如果未添加空行,则分区无法正确呈现。 - 在空白行后提供主内容。 可以使用 Markdown 语法和 HTML 设置主内容的格式。
- 如果在页面上创建多个可折叠部分,请在每个结束
</details>标记后添加一个空白行。
以下示例在 Wiki 页面上创建可折叠部分:
# A collapsible section with Markdown syntax
<details>
<summary>Click to expand!</summary>
## Heading
1. A numbered
2. list
* With some
* Sub bullets
</details>
嵌入式视频
使用 ::: video ::: 语法在 Wiki 页面中嵌入 YouTube 中的视频和Microsoft Streams。 在 video 声明中,定义一个 <iframe> 视频块。 提供指向视频的链接,并指定首选宽度和高度。 可以设置其他属性,例如边框和全屏模式。 需要结束冒号 ::: 才能防止页面中出现中断。
以下示例在 Wiki 页面中嵌入视频:
Watch the following video:
::: video
<iframe width="640" height="360" src="https://www.youtube.com/embed/OtqFyBA6Dbk" allowfullscreen style="border:none"></iframe>
:::
下面是嵌入了视频的 Wiki 页面的已发布视图:
嵌入式 Azure Boards 查询结果
使用包含查询 ID 的语法将 query-table Azure Boards 查询结果嵌入 Wiki 页面中作为表:
Results from the Azure Boards query:
:::
query-table 6ff7777e-8ca5-4f04-a7f6-9e63737dddf7
:::
还可以选择“更多选项”(...) >工具栏上的查询结果:
在“ 查询结果 ”对话框中,选择查询结果,然后选择“ 插入 ”以将结果作为表嵌入 Wiki 页面中。
有关如何复制为查询提供 GUID 的查询 URL 的详细信息,请参阅 电子邮件查询项或共享查询 URL。
带有 @ 提及的通知
使用 at 符号 @为用户或组创建提及,如中所示 @<user-alias>。 输入 at@ 符号时, “自动建议 ”对话框随即打开,可在其中选择要接收电子邮件通知的用户或组:
还可以选择 “更多选项 ”(...) >@ 在工具栏上提及:
直接在代码中编辑页面时,请使用以下模式 @<{identity-guid}>。
Wiki 页面的页面访问计数
在 Wiki 中的每个页面上添加过去 30 天自动聚合的页面访问计数。 页面访问是在 15 分钟间隔内由指定用户查看页面。
使用批处理 API pagesBatch 查看分页视图中所有页面的每日访问次数。 该视图未按访问次数进行排序。
对于超过 30 天的数据,请使用 REST API 获取所有页面访问的列表。 根据访问次数对页面进行排序,并确定前 100 个。 可以将访问存储在仪表板或数据库中。
下图显示了已发布 Wiki 页面上的页面计数:
Wiki 页面中的 HTML 标记
在 Wiki 页面中使用 HTML 标记(例如 <font> 和 <span>)创建丰富的内容。 在 Azure DevOps Server 2019.1 及更高版本中,还可以将丰富的内容(如图像和视频)粘贴为 HTML。
示例:在 HTML 中使用 Markdown 语法
以下示例演示如何在 Wiki 页面中的 HTML 元素中使用 Markdown 语法。 在打开的 HTML 元素之后和 Markdown 之前添加一个空白行:
<p>
This article describes how to **get started** with an Azure DevOps wiki.
For more information, see the [Wikis, search, & navigation documentation](https://free.blessedness.top/azure/devops/project/) for Azure DevOps.
</p>
示例:使用 HTML 嵌入视频
以下示例演示如何使用包含视频 URL 的 <video> HTML 元素在 Wiki 页面中嵌入视频:
<video src="https://sec.ch9.ms/ch9/7247/7c8ddc1a-348b-4ba9-ab61-51fded6e7247/vstswiki_high.mp4" width=400 controls>
</video>
示例:使用富文本格式
以下示例演示如何在 Wiki 页面中使用 HTML 格式文本格式:
<p>This text needs to <del>strikethrough</del> <ins>since it is redundant</ins>!</p>
<p><tt>This text is teletype text.</tt></p>
<font color="blue">Colored text</font>
<center>This text is center-aligned.</center>
<p>This text contains <sup>superscript</sup> text.</p>
<p>This text contains <sub>subscript</sub> text.</p>
<p>The project status is <span style="color:green;font-weight:bold">GREEN</span> even though the bug count / developer might be shown as <span style="color:red;font-weight:bold">red.</span> - Capability of span
<p><small>Disclaimer: Wiki also supports showing small text</small></p>
<p><big>Bigger text</big></p>
下图显示了 Wiki 页面中 HTML 格式文本内容的已发布视图,如标准浅色主题视图所示:
下面是深色主题模式下的相同已发布页面: