2.2. Markdown扩展语法学习#

See also

Markdown 是可以通过 markdown-it-py 来扩展语法。因为本项目的 Markdown 解析器是 MyST-NB (依赖 MyST ),相关的 Markdown 语法扩展的添加可以前往 可选的 MyST 扩展语法 查看。

下文中 定义清单任务清单 以及 自动识别网址链接 都是通过 可选的 MyST 扩展语法 实现的。

2.2.1. 表格#

要添加表,请使用三个或多个连字符(---)创建每列的标题,并使用管道(|)分隔每列。您可以选择在表的任一端添加管道。

| Syntax    | Description |
| --------- | ----------- |
| Header    | Title       |
| Paragraph | Text        |

呈现的输出如下所示:

Syntax

Description

Header

Title

Paragraph

Text

提示: 使用连字符和管道创建表可能很麻烦。为了加快这一过程,请尝试使用Markdown Tables Generator。使用图形界面构建表,然后将生成的Markdown格式的文本复制到文件中。当然也可以直接使用 Typora 编辑器,该编辑提供了表格的快速创建和编辑功能。

2.2.1.1. 格式化表格中的文字#

您可以格式化表格中的文本。例如,您可以添加链接代码(```仅在刻度线()中显示单词或短语,而不能在代码块中添加)和强调

您不能添加标题,块引用,列表,水平规则,图像或HTML标签。


2.2.2. 围栏代码块#

See also

由于此电子书是基于 MyST Parser 来解析的,所以其代码高亮是适用 pygments 实现的; 点击查看关于代码高亮 pygments 支持的语言

Markdown基本语法允许您通过将行缩进四个空格或一个制表符来创建代码块。如果发现不方便,请尝试使用受保护的代码块。根据Markdown处理器或编辑器的不同,您将在代码块之前和之后的行上使用三个刻度线(```)或三个波浪号(~~~)。如果想要包含一个含有三个刻度线(```),可以使用四个刻度:

```` ``` ````
```
{
"firstName": "John",
"lastName": "Smith",
"age": 25
}
```

呈现的输出如下所示:

{
  "firstName": "John",
  "lastName": "Smith",
  "age": 25
}

2.2.2.1. 语法高亮#

许多Markdown处理器都支持围栏代码块的语法突出显示。此功能使您可以为代码编写时使用的任何语言添加颜色突出显示。要添加语法突出显示,请在受防护的代码块之前的对号旁指定一种语言。

```json
{
  "firstName": "John",
  "lastName": "Smith",
  "age": 25
}
```

呈现的输出如下所示:

{
  "firstName": "John",
  "lastName": "Smith",
  "age": 25
}

2.2.3. 脚注#

脚注使您可以添加注释和参考,而不会使文档正文混乱。创建脚注时,带有脚注引用的链接将出现带有链接的上标编号。读者可以单击链接跳至页面底部的脚注内容。

要创建脚注参考,请在方括号([^1])内添加插入符号和标识符。标识符可以是数字或文字,但他们不能包含空格或制表符。标识符仅将脚注参考与脚注本身相关联-在输出中,脚注按顺序编号。

在括号内使用另一个插入符号和数字添加脚注,并用冒号和文本([^1]: My footnote.)括起来。您不必在文档末尾添加脚注。你可以把他们的任何地方,除了像列表一样,块报价,和表格等元素里面。

Here's a simple footnote,[^1] and here's a longer one.[^bignote]

[^1]: This is the first footnote.

[^bignote]: Here's one with multiple paragraphs and code.

    Indent paragraphs to include them in the footnote.

    `{ my code }`

    Add as many paragraphs as you like.

呈现的输出如下所示:

Here’s a simple footnote,1 and here’s a longer one.2


2.2.4. 定义清单#

一些Markdown处理器允许您创建自定义列表和术语及其相应的定义。要创建定义列表,请在第一行上键入术语。下一行,键入一个冒号后跟一个空格和定义。

First Term
: This is the definition of the first term.

Second Term
: This is one definition of the second term.
: This is another definition of the second term.

运行效果:

First Term

This is the definition of the first term.

Second Term

This is one definition of the second term.

This is another definition of the second term.

2.2.5. 删除线#

您可以通过在单词中心放置一条水平线来“删除”单词。结果看起来像这样。此功能使您可以指示某些单词是一个错误,并不表示要包含在文档中。若要删除单词,请~~在单词前后使用两个波浪号()。

~~The world is flat.~~ We now know that the world is round.

呈现的输出如下所示:

The world is flat. We now know that the world is round.


2.2.6. 任务清单#

任务列表使您可以创建带有复选框的项目列表。在支持任务列表的Markdown应用程序中,复选框将显示在内容旁边。要创建任务列表,请在任务列表项之前添加破折号(-)和方括号,并[ ]在其前面加上一个空格()。要选择一个复选框,请x在方括号([x])之间添加in 。

- [x] Write the press release
- [ ] Update the website
- [ ] Contact the media

呈现的输出如下所示:

  • Write the press release

  • Update the website

  • Contact the media

2.2.7. 自动识别网址链接#

许多Markdown处理器会自动将URL转换为链接。这意味着如果您输入http://www.example.com,即使您没有使用方括号,您的Markdown处理器也会自动将其转换为链接。

这个功能需要使用到 Markdown 的扩展 linkify-it-py。要么直接 pip install linkify-it-py 或通过 pip install myst-parser[linkify] 安装 Python 模块。 相关笔记可前往笔记—— 可选的 MyST 扩展语法中的链接扩展语法的开启和使用

http://www.example.com

呈现的输出如下所示:

http://www.example.com

2.2.7.1. 禁用自动URL链接#

如果您不希望自动链接URL,则可以通过将URL表示为带有刻度线的代码来删除该链接。

`http://www.example.com`

呈现的输出如下所示:

http://www.example.com


1

This is the first footnote.

2

Here’s one with multiple paragraphs and code.

Indent paragraphs to include them in the footnote.

{ my code }

Add as many paragraphs as you like.