项目

概览

大多数使用 Markdown 的用户会发现,基本和扩展的语法元素已经能满足他们的需求。但如果你长时间使用 Markdown,很可能会发现有些你需要的功能 Markdown 并不支持。本页提供了一些应对 Markdown 局限性的技巧和窍门。

提示:这些技巧并不能保证在你的 Markdown 应用中都能生效。如果你频繁需要使用这些技巧,或许应该考虑使用除 Markdown 之外的工具进行写作。

下划线

在网页写作中,下划线文本并不常见,这可能是因为下划线文本常与链接混淆。然而,如果你正在撰写论文或报告,你可能需要能够对单词和短语加下划线。像 Bear 和 Simplenote 这类少数应用提供了对文本加下划线的支持,但 Markdown 本身并不原生支持下划线功能。如果你的 Markdown 处理器支持 HTML,你可以使用 HTML 的<ins>标签来为文档中的文本添加下划线。

这里有些文字<ins>将会被加下划线</ins>。

渲染后的输出如下所示:

这里有些文字 将会被加下划线

缩进(制表符)

在 Markdown 中,制表符和空白有着特殊的意义。你可以使用尾随空白来创建换行,也可以用制表符来创建代码块。但如果你想以传统的方式,即使用制表键来缩进段落,Markdown 并没有提供简单的方法。

最好的办法可能是使用一个支持缩进的 Markdown 编辑器。这在更倾向于桌面排版的应用程序中较为常见。例如,iA Writer 允许你在应用程序偏好设置中自定义编辑器的缩进设置。它还提供了模板自定义选项,以便你可以使渲染出的文档看起来符合预期,包括缩进等。

另一个选择是,如果你的 Markdown 处理器支持 HTML,可以使用 HTML 实体 &nbsp; 来表示不可折断的空格。这应该是最后的手段,因为它可能显得笨拙。基本上,Markdown 源码中的每个 &nbsp; 在渲染后的输出中都会被替换为空格。因此,如果你在一个段落前插入四个 &nbsp; ,该段落看起来就像是缩进了四个空格。

&nbsp;&nbsp;&nbsp;&nbsp;这是我的缩进段落的第一句话。

渲染后的输出如下:

    这是我的缩进段落的第一句话。

居中

在撰写论文或报告时,能够居中文本是必需的。不幸的是,Markdown 没有文本对齐的概念(可能的例外是在使用表格时)。好消息是有一个 HTML 标签你可以用:<center>。如果你的 Markdown 处理器支持 HTML,你可以将这些标签放在任何你想居中对齐的文本周围。

<center>这段文字居中显示。</center>

渲染后的输出如下:

这段文字居中显示。

<center> HTML 标签虽然技术上受支持,但实际上已被弃用,这意味着它目前仍能工作,但不建议使用。不幸的是,没有其他纯 HTML 的替代方案。你可以尝试使用 CSS 的替代方法。并非所有 Markdown 应用都支持 CSS,但如果使用的应用支持,这里有一个替代 <center> 标签的方法:

`<p style="text-align:center">将这段文字居中</p>`

如果 Markdown 应用支持这一点,输出将如下所示:

将这段文字居中

文本颜色

Markdown 本身不允许你改变文本颜色,但如果 Markdown 处理器支持 HTML,你可以使用 HTML 的 <font> 标签。color 属性允许你通过颜色名称或十六进制 #RRGGBB 代码指定字体颜色。

<font color="red">这段文字是红色的!</font>

渲染后的输出如下所示:

这段文字是红色的!

<font> 标签技术上虽受支持,但实际上已被弃用,这意味着它当前仍能工作,但不应再继续使用。不幸的是,没有其他纯 HTML 的替代方案。你可以尝试使用 CSS 的替代方法。并非所有 Markdown 应用都支持 CSS,但如果所使用的应用支持,这里有一个替代 <font> 标签的方法:

<span style="color:blue">让这段文字变成蓝色。</span>

如果 Markdown 应用支持这一点,输出将如下所示:

让这段文字变成蓝色。

注释

有些人需要在 Markdown 文件中编写句子,而这些句子不会出现在渲染后的输出中。这些注释本质上是隐藏的文字。作者可以查看这些文本,但它不会被打印到网页或 PDF 上。Markdown 本身不支持注释,但一些有创意的人士找到了解决方案。

要添加注释,请将文本置于方括号内,后跟冒号、空格和井号(例如,[注释]: #)。注释前后应放置空白行。

这是一个可见的段落。

[这是会被隐藏的注释。]: #

再来一个可见的段落。

渲染后的输出如下所示:

这是一个可见的段落。

再来一个可见的段落。

提示:这个提示来源于 Stack Overflow,经过了同行评审并已被数千人使用!

警告提示

警告提示常用于文档中以引起对警告、注记和提示的注意。Markdown 没有为警告提示提供特殊的语法,大多数 Markdown 应用也不支持警告提示(MkDocs 是一个例外)。

然而,如果你需要添加警告提示,也许可以使用带有表情符号和强调的区块引用,来创建类似于在其他网站上看到的警告提示效果。

> :warning: **警告:** 不要按下那个大红按钮。
> :memo: **注记:** 日出非常美丽。
> :bulb: **提示:** 记得欣赏生活中的小事物。

渲染后的输出如下:

⚠️ 警告: 不要按下那个大红按钮。

📝 注记: 日出非常美丽。

💡 提示: 记得欣赏生活中的小事物。

图片尺寸

Markdown 的图片语法不允许你指定图片的宽度和高度。如果你需要调整图片大小,并且你的 Markdown 处理器支持 HTML,你可以使用带有 widthheight 属性的 img HTML 标签来以像素为单位设置图片尺寸。

<img src="https://www.koudingke.cn/image.png" width="200" height="100" />

渲染后的输出将包含按你指定尺寸调整大小的图片。

图片说明

Markdown 本身不支持图片说明,但有两种可能的解决方法。如果你的 Markdown 应用支持 HTML,你可以使用 figurefigcaption HTML 标签为图片添加说明。

<img src="https://koudingke.oss-cn-hangzhou.aliyuncs.com/docs/md-docs/images/albuquerque.jpg"/>
<figcaption>新墨西哥州阿尔伯克基市外的一条单轨小径。</figcaption>

渲染后的输出看起来像这样:

新墨西哥州阿尔伯克基市外的一条单轨小径。

提示:如果你的 Markdown 应用支持 CSS,你可以使用 CSS 来设计说明的外观。

如果你的 Markdown 应用不支持 HTML,你可以尝试直接将说明放在图片下方,并使用强调格式。

![Albuquerque, New Mexico](https://koudingke.oss-cn-hangzhou.aliyuncs.com/docs/md-docs/images/albuquerque.jpg "")
_A single track trail outside of Albuquerque, New Mexico._

渲染后的输出看起来像这样:

Albuquerque, New Mexico A single track trail outside of Albuquerque, New Mexico.

链接目标

有些用户喜欢创建在新标签页或新窗口中打开的链接。Markdown 的链接语法本身不允许你指定target属性,但如果你的 Markdown 处理器支持 HTML,你可以使用 HTML 来创建这类链接。

<a href="https://www.markdownguide.org" target="_blank">学习 Markdown!</a>

渲染后的输出看起来像这样:

学习 Markdown!

符号

Markdown 没有为符号提供特别的语法。然而,在大多数情况下,你可以直接复制并粘贴想在 Markdown 文档中使用的任何符号。例如,如果你需要展示圆周率(π),只需从网页上找到这个符号并将其复制粘贴到文档中。该符号应在渲染后的输出中正常显示。

或者,如果你的 Markdown 应用支持 HTML,你可以使用 HTML 实体来表示你想要的符号。例如,如果你想展示版权符号(©),可以直接复制版权的 HTML 实体(©)并粘贴到 Markdown 文档中。

以下是一些常用符号的 HTML 实体示例:

  • 版权(©)— ©
  • 注册商标(®)— ®
  • 商标(™)—
  • 欧元(€)—
  • 左箭头(←)—
  • 上箭头(↑)—
  • 右箭头(→)—
  • 下箭头(↓)—
  • 度数(°)— °
  • 圆周率(π)— π

完整的 HTML 实体列表可参考 Wikipedia 上的“HTML 实体”页面。

表格格式化

Markdown 表格以其难以驾驭著称。你无法在表格单元格中使用许多 Markdown 语法元素来格式化文本。但是,至少对于两个常见的表格问题存在变通方法:单元格内的换行和列表。

单元格内的换行

你可以在单元格内部使用一个或多个<br>HTML 标签来分隔段落。

| 语法 | 描述                 |
| ---- | -------------------- |
| 标题 | 标题                 |
| 段落 | 第一段。<br>第二段。 |

渲染后的输出如下:

语法 描述
标题 标题
段落 第一段。
第二段。

单元格内的列表

你可以在单元格内通过使用 HTML 标签来添加列表。

| 语法 | 描述                                   |
| ---- | -------------------------------------- |
| 标题 | 标题                                   |
| 列表 | 这是一个列表!<br>项目一。<br>项目二。 |

渲染后的输出如下:

语法 描述
标题 标题
列表 这是一个列表!
项目一。
项目二。

目录

一些 Markdown 应用,如 Markdeep,可以从你的标题自动生成目录(也称为toc),但这并不是所有 Markdown 应用都提供的功能。然而,如果你的 Markdown 应用支持标题 ID,你可以通过列表和一些链接为 Markdown 文件创建一个目录。

#### 目录

- [下划线](#underline)
- [缩进](#indent)
- [居中](#center)
- [颜色](#color)

渲染后的输出如下:

目录

视频嵌入

如果你的 Markdown 应用支持 HTML,你应该可以通过复制 YouTube 或 Vimeo 等视频网站提供的 HTML 代码,在 Markdown 文件中嵌入视频。如果 Markdown 应用不支持 HTML,你不能直接嵌入视频,但你可以通过添加视频的图像链接来接近这一效果。几乎在任何视频服务上的任何视频都可以这样做。

既然 YouTube 让这个过程变得简单,我们就以它为例。比如这个视频:https://www.youtube.com/watch?v=8q2IjQOzVpE。URL 的最后一部分(8q2IjQOzVpE)就是视频的 ID。我们可以取这个 ID 并放入以下模板中:

[![视频标题](https://img.youtube.com/vi/YOUTUBE-ID/0.jpg)](https://www.youtube.com/watch?v=YOUTUBE-ID)

YouTube 会为每个视频自动生成一张预览图(https://img.youtube.com/vi/YOUTUBE-ID/0.jpg),我们可以利用这张图,并将其链接到 YouTube 上的视频。替换图片的替代文本并添加视频 ID 后,我们的示例就像这样:

[![Less Than Jake — Scott Farcas Takes It On The Chin](https://koudingke.oss-cn-hangzhou.aliyuncs.com/docs/md-docs/images/albuquerque.jpg "")](https://www.youtube.com/watch?v=PYCxct2e0zI)

渲染后的输出看起来是这样的:

Less Than Jake — Scott Farcas Takes It On The Chin

点击这个图片就会跳转到 YouTube 视频页面。

在本文档中