MDUtil

Markdown 加粗

在文字两侧各加两个星号就能加粗:**加粗**。本文介绍两种写法、粗斜体、中文标点旁加粗失效的原因和解决办法,以及各平台的差异。

简短回答

Markdown 怎么加粗?

在文字两侧各加两个星号:**加粗文字**。用两个下划线 __加粗文字__ 效果相同,两种写法都会生成 HTML 的 <strong> 元素。中文正文推荐用星号:下划线写法要求两侧有空格或标点,紧挨汉字时不生效。

Markdown
**这段文字是粗体**

__这段文字也是粗体__

显示效果

这段文字是粗体

这段文字也是粗体

加粗的写法和示例

两种符号生成的 HTML 相同,区别在于能否紧挨文字使用。中文里还有一个常见问题:加粗的文字以标点开头或结尾时,加粗可能不生效。

双星号

兼容性最好的写法,CommonMark、GitHub、GitLab、Discord、Obsidian、Notion 以及 Hugo、Jekyll 等静态网站生成器都支持。

Markdown
请在**今天**上线,不要拖到下个季度。

显示效果

请在今天上线,不要拖到下个季度。

双下划线

效果与双星号相同,但两侧需要空格或标点,紧挨汉字时不会生效,所以中文里更适合用星号。在 Discord 中 __文字__ 表示下划线。

Markdown
这是 __粗体__ 文字

这是__粗体__文字

显示效果

这是 粗体 文字

这是__粗体__文字

标点旁的加粗失效

CommonMark 规定,** 的内侧是标点、外侧紧挨文字时,不能作为加粗的开始或结束,所以 **注意:**文字 会原样显示。把标点移到星号外面,或者在星号后加一个空格即可。GitHub 等遵循 CommonMark 的平台都有这个问题。

Markdown
**注意:**该操作无法撤销。

**注意**:该操作无法撤销。

**注意:** 该操作无法撤销。

显示效果

**注意:**该操作无法撤销。

注意:该操作无法撤销。

注意: 该操作无法撤销。

单词内部加粗

英文单词中间只能用星号加粗。CommonMark 忽略单词中间的下划线,以免破坏 snake_case_name 这类名称。

Markdown
un**bel**ievable

un__bel__ievable

显示效果

unbelievable

un__bel__ievable

粗斜体

三个星号同时加粗和倾斜,也可以把两种写法嵌套使用。中文字体大多没有斜体字形,浏览器会把字形倾斜显示。

Markdown
***又粗又斜***

**粗体中有一段 _斜体_ 文字**

显示效果

又粗又斜

粗体中有一段 斜体 文字

显示星号本身

在每个星号前加反斜杠,星号就会原样显示。反引号里的内容也不会被格式化。

Markdown
\*\*这里不是粗体\*\*

`**这里也不是粗体**`

显示效果

**这里不是粗体**

**这里也不是粗体**

各平台的加粗支持

双星号几乎处处可用,各平台的差异在下划线和单星号上。

应用支持情况说明
GitHub / GitLab支持README、Issue、PR 和评论中 ** 与 __ 都能用。
Discord有差异**文字** 是粗体,__文字__ 是下划线。
Slack有差异Slack 消息用单个星号加粗:*文字*。
Obsidian支持两种写法都支持,星号可以在单词内部加粗。
Notion支持输入 **文字** 会立即变成粗体。
Typora支持两种写法都支持,输入后直接显示为粗体。

常见问题

** 和 __ 有什么区别?

对完整的英文单词没有区别,都会生成 <strong>。差别有两处:紧挨文字时只有星号有效,所以 这是__粗体__文字 不会加粗;在 Discord 中 __文字__ 表示下划线。

怎样同时加粗和倾斜?

两侧各写三个星号:***文字***,或者嵌套两种写法:**_文字_**。

为什么加粗不生效?

常见原因有四个:星号和文字之间有空格(** 文字 **);** 的内侧是标点、外侧紧挨文字,例如 **注意:**文字;用了下划线且紧挨汉字;文字在代码块或反引号里。标点的问题把标点移到星号外面,或在星号后加空格就能解决。

GitHub 上怎么加粗?

GitHub 的 README、Issue、Pull Request、评论和 Wiki 都支持 **文字** 和 __文字__。中文标点旁加粗失效的问题在 GitHub 上同样存在。

Discord 里怎么加粗?

输入 **文字**。Discord 把 __文字__ 显示为下划线,加粗请用星号。

代码块里的加粗会生效吗?

不会。代码块和反引号里的内容按原样显示,** 就是两个星号。

怎样显示星号本身而不加粗?

在每个星号前加反斜杠:\*\*文字\*\* 显示为 **文字**。把文字放进反引号也能关闭格式。

Markdown 加粗生成什么 HTML?

生成 <strong> 元素。需要 <b> 时直接写 HTML 标签,大多数 Markdown 渲染器允许内嵌 HTML。