在 Azure DevOps 中使用 Markdown

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

重要

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

选择与平台和版本相对应的本文的版本。 版本选择器位于目录上方。 查找 Azure DevOps 平台和版本

本文介绍将 Markdown (.md) 格式与 Azure DevOps 功能(包括 Wiki 页面)配合使用的基本语法。 Markdown 语法允许向页面内容添加特殊格式,例如标题、列表、表和图像。 使用 Markdown 设置自述文件、仪表板、拉取请求内容等格式。

有两个格式设置选项:适用于 GitHub 的常见 Markdown 约定Markdown 扩展

支持 Azure DevOps 功能

Markdown 语法涵盖各种格式选项,例如内容标题、引用链接、文本强调(如粗体)和文件附件。 并非所有 Markdown 语法都可用于 Azure DevOps 中的所有功能。 支持 Markdown 语法的一些重要功能包括:

注释

Azure DevOps 中的 Markdown 不支持 JavaScript 或 iframe。 例如,不能直接嵌入交互式元素,如倒计时计时器。

下表概述了对不同 Markdown 元素的功能支持,并提供本文中语法部分的链接。 该表使用 “完成”、“Markdown 小组件”、“拉取请求”(PR)、 自述 文件和 Wiki 文件的表示法定义。

Markdown 类型 完成 控件 公关 自述文件 维基
标题 ✔️ ✔️ ✔️ ✔️ ✔️
段落和换行符 ✔️ ✔️ ✔️ ✔️ ✔️
块引号 ✔️ ✔️ ✔️ ✔️ ✔️
水平规则 ✔️ ✔️ ✔️ ✔️ ✔️
强调 ✔️ ✔️ ✔️ ✔️ ✔️
代码高亮 ✔️ ✔️ ✔️
建议更改 ✔️
✔️ ✔️ ✔️ ✔️
列表 ✔️ ✔️ ✔️ ✔️ ✔️
链接 ✔️ ✔️ ✔️ ✔️ ✔️
图像 ✔️ ✔️ ✔️ ✔️
清单或任务列表 ✔️ ✔️
表情符号 ✔️ ✔️
忽略或转义 Markdown ✔️ ✔️ ✔️ ✔️ ✔️
附件 ✔️ ✔️
数学表示法 ✔️ ✔️

标头

使用 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 的已发布视图:

显示五个标头级别的 Markdown 语法已发布视图的屏幕截图。

段落和换行符

通过将长部分拆分为较小的段落或插入换行符以在文本行之间创建空格,使文本更易于阅读。

可以在 “完成定义”(开发板)Markdown 小组件、拉取请求、自述文件和 Wiki 文件中添加段落和换行符。

示例:在 Markdown 中添加中断和拉取请求

拉取请求中的注释接受 Markdown,例如 文本的粗体斜体 样式。 还可以使用 Enter 键插入换行符以在下一行上开始新文本或添加行距。

在以下 Markdown 中,作者使用 Enter 键在新行上启动第二个句子:

_Markdown_ lets you separate long lines of text by using the **Enter** key in a pull request comment. <!-- Select Enter -->
Select **Enter** once to start text on a new line. <!-- Select Enter twice -->
Select **Enter** twice to insert a blank line between lines of text.

下图显示了拉取请求注释中用于间距的 Markdown 已发布视图:

显示用于换行符和段落分隔符的 Markdown 语法已发布视图的屏幕截图。

示例:在 Markdown 文件或小组件中添加分隔符

在 Markdown 文件或 Markdown 小组件中,可以分隔文本行以创建新段落。 在换行符之前添加两个空格(空格 键),然后选择 Enter 以开始新段落。

Add two **Space** characters before the end of the line and then select **Enter**. <!-- Select Space twice, Selet Enter -->
The next paragraph starts on a new line. The two paragraphs are separated by a blank line.

下图显示了小组件中用于间距的 Markdown 已发布视图:

显示 Enter 和空格键的 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 语法已发布视图的屏幕截图。

水平规则

带水平规则的下划线或分隔内容和页面部分。 可以在 “完成”定义(开发板)Markdown 小组件、拉取请求、自述文件和 Wiki 文件中添加分隔符。

若要添加水平规则,请输入一个空白行,然后输入另一行,其中包含三个连字符(短划线)。 ---

示例:插入水平分隔符

以下 Markdown 创建两个水平规则:

Text **above** a horizontal rule
<!-- Blank -->
---
Text **between** horizontal rules
<!-- Blank -->
---
Text **under** a horizontal rule

下图显示了适用于水平规则的 Markdown 已发布视图:

显示水平规则的 Markdown 语法已发布视图的屏幕截图。

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

Markdown 提供了多个样式选项来强调文本:

风格 示例: Markdown
斜 体 字 斜体文本 将文本括在单个星号 * 或下划线 _ 字符中。
体(强) 加粗文本 将文本括在双星号 ** 或下划线 __ 字符中。
删除线 已越出文本 将文本括在双平铺 ~~ 字符中。

可以组合这些样式来对文本应用强调。 重点样式在 “完成定义”(开发板)Markdown 小组件、拉取请求、自述文件和 Wiki 文件中可用。

注释

没有用于下划线文本的 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 已发布视图:

显示用于文本强调样式的 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 语法已发布视图的屏幕截图。

示例:将文本转换为代码,识别代码语言

有一种将文本块转换为代码的替代方法。 当 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 -->

下图显示了注释建议的差异视图:

显示拉取请求注释中代码的建议更改示例的屏幕截图。

有关详细信息,请参阅 “建议批注中的更改”。

表格

使用 Markdown 表组织结构化数据。 可以在 Markdown 小组件、拉取请求、自述文件和 wiki 文件中添加表。 表对于使用明确的名称到描述映射描述函数参数、对象方法和其他数据特别有用。

以下是有关在 Markdown 中使用表的一些要点:

  • 在单独的行上创建每一行,并用回车符(CR)或换行符(LF)结束每一行。
  • 使用连字符 - 和管道符号 |创建列,如中所示 |---|---|---|
  • 定义第一行中的列标题,如中所示 | First | Middle | Last |
  • 使用第二行中的冒号 : (左、居中、右)定义列对齐方式,如中所示 |:--|:--:|--:|
  • 在表格文本中使用时,使用反斜杠 \| 转义管道符号,如 in | 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 表的已发布视图:

功能 / 特点 预发行 发布目标
计算器 10/27/2025
图形 是的 8/18/2025
邮件 2/16/2025
表格 是的 10/27/2025
搜索 1/5/2026

列表

使用不同类型的列表组织相关项目。 创建有序列表以显示序列中项或项的优先级。 使用项目符号点创建相关但未排序的项目的列表。 可以在 “完成”定义(开发板)Markdown 小组件、拉取请求、自述文件和 Wiki 文件中添加列表样式。

以下是有关在 Markdown 中使用列表的一些要点:

  • 在单独的行上指定每个列表项。
  • 在有序列表中启动每个项,后跟一个句点,就像在 1. First item 2. Next item. “你”中还可以启动 1. 每个项,并允许发布系统确定编号。
  • 使用连字符 - 或星号 *启动无序列表中的每个项,如中所示 - First point - Next point
  • 在 Markdown 文件或小组件中检查列表前后的间距:
    • 对于初始列表,请在列表前后添加一个空白行。
    • 对于嵌套列表,请使用正确的缩进。 不需要在换行符前后额外。

示例:创建编号列表(已排序)

以下示例演示如何使用 Markdown 为序列中的项创建编号列表:

<!-- Blank -->
1. First step in the procedure.
1. Second step.
1. Third step.
<!-- Blank -->

下面是 Markdown 排序列表的已发布视图:

  1. 过程中的第一步。
  2. 第二步。
  3. 第三步。

示例:创建项目符号(无序)列表

以下示例演示如何使用 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 -->

下面是包含嵌套列表的列表的已发布视图:

  1. 过程中的第一步。
    • 嵌套列表中的第一项。
    • 下一项。
    • 最后一项。
  2. 第二步。
    • 嵌套列表中的第一项。
      • 子引入列表中的第一项。
      • 下一项。
    • 最后一项。
  3. 第三步。
    1. 第一个子步骤。
    2. 下一个子步骤。
    3. 最后一个子步骤。

通过输入哈希标记 # 后跟工作项 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 页面时,可以将链接目标指定为相对路径或绝对路径。

注释

出于安全目的,不支持指向文件共享上的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 小组件中的相对链接:

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

下面是 Wiki 页面中相对链接的一些示例:

  • Wiki 页面的绝对路径: [Display text](/parent-page/child-page)

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

在欢迎页面与 Markdown 小组件中,源代码管理文件的相对链接以不同的方式解释:

欢迎页中的相对链接相对于“欢迎”页所在的源代码管理存存根。 下面是一些示例:

  • /BuildTemplates/AzureContinuousDeploy.11.xaml
  • ./page-2.md

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)

映像

在内容中使用图像和动画 GIF 演示概念并添加视觉兴趣。 可以在 Markdown 小组件、拉取请求、自述文件和 Wiki 文件中添加图像。

图像或动画 GIF 的标准 Markdown 语法为 ![Image alt text](Image path)。 语法类似于链接的语法,但行以感叹号 ! 开头。

该值 Image alt text 描述图像。 当用户将鼠标悬停在已发布视图中的图像上时,将显示替换文字值。 标识 Image path 图像位置。

以下示例将插图添加到 Markdown 文件:

![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-path =Image-widthxImage-height

  • x字母表示by计算表达式“width-by-height”中的部分。
  • 不要在字母 x前后添加空格。
  • 在等 = 号之前,请包含空格。
  • 如果愿意,可以指定唯一的 Image-width ,如中 Image-path =Image-widthx所示。 请注意,您仍然指定字母 x

以下示例显示了指定宽度为 500 且高度为 250 的图像的 Markdown 语法:

![Image alt text](./image.png =500x250)

清单或任务列表

使用轻型任务列表跟踪工作分配和作项的进度。 可以在拉取请求和 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 应用于所选文本

还可以在 Web 门户中选择现有文本,并使用 Markdown 工具栏上的作应用清单格式。 以这种方式添加清单或任务后,可以在 Markdown 中编辑列表或任务。

下图显示了如何将 Markdown 工具栏上的 “任务列表 ”样式应用于所选文本:

显示如何在 Markdown 工具栏上将任务列表样式应用于拉取请求中的选定文本的屏幕截图。

通过选中列表中的任务框将任务标记为已完成:

显示任务列表中标记为已完成的任务的屏幕截图。

表情符号反应

在拉取请求和 Wiki 文件中添加表情符号反应。 可以使用表情符号反应添加字符并响应请求中的注释。

输入情感或表达式的名称,例如 smile ,并将文本括在冒号 : 字符中。 在 Markdown 的已发布视图中,输入将转换为相应的 表情符号图形。 Azure DevOps 中的 Markdown 支持大多数表情符号图形。

示例:在拉取请求中添加表情符号反应

以下示例演示如何在拉取请求注释中使用 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 中的转义字符将特殊字符作为文本文本发布。 反斜杠会导致发布系统绕过特殊字符的任何解释和转换过程。 特殊字符在已发布视图中显示为文本文本。

可以在 “完成定义”(开发板)Markdown 小组件、拉取请求、自述文件和 Wiki 文件中使用忽略和转义语法。

示例:发布特殊字符

Markdown 语法“将文本括在反杆中”具有已发布视图 Enclose text in backticks。 发布系统将 inline code 格式应用于反引号 (') 中的文本,并且不会发布反引号。

如果将反斜杠 (') 作为前缀,反斜杠中的文本格式不会更改,并且发布了反斜杠。 此行为适用于大多数特殊字符,包括括号()、方括号[]]、下划线_、连字符-、哈希标记#星号*backtick \`和反斜杠\本身。

以下 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 的已发布视图:

\\ 代码注释

显示 __下划线__

# 代码注释而不是 标题

包括 括号)

*显示星号*,不更改为斜体

注释

对于某些 Markdown,可以输入反斜杠的 HTML 代码 &#92; ,而不是字符符号 \

附件

在拉取请求注释和 Wiki 页面中附加文件。 附件有助于说明你的观点或提供有关建议的详细信息。 附件支持以下文件格式:

附件类型

文件格式

代码

C# (.cs)、可扩展标记语言(.xml)、JavaScript 对象表示法(.json)、超文本标记语言(.html.htm)、层(.lyr)、Windows PowerShell 脚本(.ps1)、Roshal Archive(.rar)、远程桌面连接(.rdp)、结构化查询语言(.sql

注意:拉取请求注释不支持代码附件。

压缩文件

ZIP (.zip),GZIP(.gz

文档

Markdown(.md)、Microsoft Office 邮件(.msg)、Microsoft项目(.mpp)、Word(.doc、 .docx)、Excel(.xls.xlsx.csv)、PowerPoint(.ppt、.pptx)、纯文本( .txt)、可移植文档格式(.pdf

图像

PNG(.png)、GIF(.gif)、JPEG(.jpeg.jpg)、图标(.ico

Visio

VSD (.vsd.vsdx

视频

MOV (.mov), MP4 (.mp4

注释

并非所有文件格式都支持为拉取请求注释中的附件,例如Microsoft Office 邮件(.msg)文件。

附加图像或文件

可通过多种方式在“编辑”窗格中的拉取请求批注框或 Wiki 页面上附加图像或文件:

  • 将文件拖放到批注或 Wiki 页面上。

  • 将剪贴板上的图像粘贴到批注或 Wiki 页面上。 图像直接呈现在批注或 Wiki 页面上。

  • 在批注或 Wiki 页面中的“格式”窗格中选择“附加”图标,然后选择要附加的文件:

    显示如何选择剪纸图标以将文件附加到 Wiki 页面上的屏幕截图。

附加非图像文件时,系统会在注释或 Wiki 页面上创建指向该文件的链接。 可以更改方括号内的链接显示文本,如中所示 [Updated link display text](LINK URL)。 发布页面或批注时,用户可以选择用于访问附件的链接。

数学表示法和字符

可以在拉取请求注释和 wiki 文件中使用数学表示法和字符。 支持内联表示法和块 KaTeX 表示法,其中包括以下元素:

  • 符号
  • 希腊文字母
  • 数学运算符
  • 权力和索引
  • 分数和二项式
  • 其他 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$

下面是希腊字符的已发布视图:

显示 KaTex 代码片段的已发布视图的屏幕截图,其中列出了用于数学表示法的希腊字符。

示例:使用代数表示法

以下示例使用内联表示法和代数块表达式:

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

And, the area of a triangle is:

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

下面是 Markdown 文件中表示法的已发布视图:

显示 KaTex 代码片段的已发布视图的屏幕截图,其中包含内联表示法和代数块表达式。

示例:显示总和整数

以下示例使用两个块表达式来计算总和和和和整数:

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

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

下面是 Markdown 文件中表达式的已发布视图:

显示 KaTex 代码片段的已发布视图的屏幕截图,该代码片段使用两个块表达式来计算求和和和积分。

Azure DevOps wiki 中的 Markdown

可以通过多种方式使用 Markdown 来增强 Azure DevOps wiki。 以下部分提供了各种任务的语法示例:

  • 添加美人鱼图,如序列、流程图和用户旅程
  • 为页面和子页创建目录(TOC)
  • 配置可折叠页面部分
  • 嵌入视频和 Azure Boards 查询结果
  • 指向带有哈希标记的工作项的链接 #
  • 对用户和组使用 @<alias> 提及
  • 包括 HTML 元素,例如 <font> 格式文本
  • 检查页面访问计数

这些功能的可用性取决于 Azure DevOps 的版本。

使用美人鱼图

美人鱼允许使用文本和代码创建图表和可视化效果。 Azure DevOps wiki 支持以下美人鱼图类型:

有关详细信息,请参阅 美人鱼发行说明

局限性

在 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; 的方向。

注释

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
:::

下面是要求图的已发布视图:

美人鱼实时编辑器的屏幕截图,其中包含要求图的代码和已发布视图的预览。

Wiki 页面的目录

使用 [[_TOC_]] 语法标记为 Wiki 页面创建目录(TOC)。 当发布系统遇到标记并确认 Wiki 页面上至少有一个标题时,它将为页面生成 TOC。 页面上的 TOC 标题为“内容”。

显示如何应用 TOC 语法标记为 Wiki 页面生成 TOC 的屏幕截图。

若要创建 TOC,可以将语法标记添加到 [[_TOC_]] Markdown 中的 Wiki 页面,或选择“更多选项”(...) >页面的“编辑”视图中的目录

下面是有关添加 TOC 的一些要点:

  • 标记的 [[_TOC_]] 语法区分大小写。 如果使用小写 [[_toc_]]形式指定语法,则 TOC 可能不会呈现。
  • 发布系统在 Markdown 页中呈现标记的第一个实例的 [[_TOC_]] TOC。 它会忽略同一页上标记的其他实例。
  • 可以将标记放置在 [[_TOC_]] Markdown 中的任意位置。 系统将在页面上呈现 TOC,该页面位于在 Markdown 中放置标记的位置。
  • 系统仅确认由哈希标记 # 语法标识的 Markdown 样式标题。 它忽略 HTML 样式标题标记。
  • 系统仅使用标题文本来创建 TOC 条目。 它忽略所有额外的 HTML 和 Markdown 语法。

以下示例演示发布系统在为 TOC 创建条目时如何忽略标题的额外格式。 标题使用 斜体设置单词“旗舰”的格式,但标题的 TOC 条目将删除额外的样式。

显示发布系统在为 TOC 创建条目时如何忽略标题的额外格式的屏幕截图。

Wiki 页面的子页表

使用 [[_TOSP_]] 语法标记为 Wiki 页面添加子页表。 页面上表格的标题为“子页面”。该表包含 Wiki 页面的每个子页的条目。

若要创建子页表,可以将语法标记添加到 [[_TOSP_]] Markdown 中的 Wiki 页面,或选择“更多选项”(...) >页面的“编辑”视图中的子页表

下面是有关添加子页表的一些要点:

  • 标记的 [[_TOSP_]] 语法区分大小写。 如果使用小写 [[_tosp_]]形式指定语法,则子页表可能不会呈现。
  • 发布系统呈现 Markdown 页中标记的第一个实例的 [[_TOSP_]] 子页表。 它会忽略同一页上标记的其他实例。
  • 可以将标记放置在 [[_TOSP_]] Markdown 中的任意位置。 系统将在页面上呈现子页的表,该表位于在 Markdown 中放置标记的位置。

显示发布系统如何为 Wiki 页面生成子页表的屏幕截图。

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 页面的已发布视图:

显示包含嵌入视频的 Wiki 页面已发布视图的屏幕截图。

嵌入式 Azure Boards 查询结果

使用包含查询 ID 的语法将 query-table Azure Boards 查询结果嵌入 Wiki 页面中作为表:

Results from the Azure Boards query:

:::
query-table 6ff7777e-8ca5-4f04-a7f6-9e63737dddf7
:::

还可以选择“更多选项”(...) >工具栏上的查询结果

显示如何在“更多选项”菜单中选择“查询结果”以将查询结果作为表嵌入 Wiki 页面中的屏幕截图。

在“ 查询结果 ”对话框中,选择查询结果,然后选择“ 插入 ”以将结果作为表嵌入 Wiki 页面中。

有关如何复制为查询提供 GUID 的查询 URL 的详细信息,请参阅 电子邮件查询项或共享查询 URL

带有 @ 提及的通知

使用 at 符号 @为用户或组创建提及,如中所示 @<user-alias>。 输入 at@ 符号时, “自动建议 ”对话框随即打开,可在其中选择要接收电子邮件通知的用户或组:

显示如何在“自动建议”对话框中选择用户以在 Wiki 页面中添加 @ 提及的屏幕截图。

还可以选择 “更多选项 ”(...) >@ 在工具栏上提及:

显示如何在“更多选项”菜单中选择@提及以在 Wiki 页面中为用户或组添加提及的屏幕截图。

直接在代码中编辑页面时,请使用以下模式 @<{identity-guid}>

Wiki 页面的页面访问计数

在 Wiki 中的每个页面上添加过去 30 天自动聚合的页面访问计数。 页面访问是在 15 分钟间隔内由指定用户查看页面。

使用批处理 API pagesBatch 查看分页视图中所有页面的每日访问次数。 该视图未按访问次数进行排序。

对于超过 30 天的数据,请使用 REST API 获取所有页面访问的列表。 根据访问次数对页面进行排序,并确定前 100 个。 可以将访问存储在仪表板或数据库中。

下图显示了已发布 Wiki 页面上的页面计数:

显示已发布 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://learn.microsoft.com/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 格式文本内容的已发布视图,如标准浅色主题视图所示:

已发布的 Wiki 页面的屏幕截图,其中使用了 HTML 格式文本格式,如浅色主题视图所示。

下面是深色主题视图中的相同已发布页面:

已发布的 Wiki 页面的屏幕截图,其中使用了 HTML 格式文本格式,如深色主题视图所示。