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.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
呈现的输出如下所示: