引用
在行首加>,这样的行放在一起构成一个引用块,对应HTML中的<blockquote>,注意>和引用块内容之间要有1个空格。
引用块最正确的用法是引用其他文章的文字,引用时应该注明出处。但在博客中,也可以用它来做小提示、警告、备注,这种情况下通常会在标题前加对应的表情。
> 这是一个引用块
>
> 引用块可以包含多个段落
<blockquote>
<p>这是一个引用块</p>
<p>引用块可以包含多个段落</p>
</blockquote>
这是一个引用块
引用块可以包含多个段落
引用块嵌套
引用块嵌套元素的语法很简单,只需要在内部元素的每行开头加上>。如果内部元素也是引用块,多个>之间不需要有空格。
> #### 引用块可以嵌套其他元素
>
> - 列表项
> - 列表项
> - 列表项
>
> #### 引用块可以嵌套引用块
>
>> 内部引用块
>>
>> 内部引用块
引用块可以嵌套其他元素
- 列表项
- 列表项
- 列表项
引用块可以嵌套引用块
内部引用块
内部引用块
代码
行内代码
在文字前后各加1个`表示代码,对应HTML中的<code>。其内部符号不需要转义,但如果内部也存在`,则应该改成在文字前后各加2个`。它通常用于简短的代码,如标识符、表达式、语句。
调用`console.log()`在控制台输出文字
模板字符串如`` `姓名:${name};年龄:${age}` ``
<p>调用<code>console.log()</code>在控制台输出文字</p>
<p>模板字符串如<code>`姓名:${name};年龄:${age}`</code></p>
调用console.log()在控制台输出文字
模板字符串如`姓名:${name};年龄:${age}`
代码块
本来Markdown中使用每行缩进4个空格来表示代码块,但这样不太方便。在扩展语法中出现了在内容前后各加1行3个`的代码块,也叫围栏代码块或受保护的代码块,现在的Markdown处理程序一般都支持该语法。如果代码块内包含3个`连在一起的情况,可以将包裹代码块的3个`改成更多的`。
在代码块开始的3个`后边,可以标注该代码块中代码使用什么语言,习惯上用小写字母。任何语言都可以,如编程语言c、python,标记语言html、markdown,数据结构化语言json、xml,甚至控制台指令语言bash、powershell。
它应该对应HTML中<pre>和<code>的嵌套。<pre>保留内容原始格式,不执行空白折叠。<code>表示代码片段的语义。标注的语言通常作为<code>的class属性,并在前边加上language-,如python就是class="language-python"。
```python
def hello():
print("Hello world!")
```
<pre><code class="language-python">def hello():
print("Hello world!")
</code></pre>
def hello():
print("Hello world!")
链接
链接的语法形如[链接名称](链接地址 "链接标题")。对应HTML中的<a>。
- 链接名称:链接显示的文字。对应HTML中
<a>标签插槽中的文字。 - 链接地址:链接指向的URL。对应HTML中
<a>标签的href属性。 - 链接标题:鼠标悬浮在链接上时显示的提示文字。对应HTML中
<a>标签的title属性。
这是一个链接:[稀土掘金首页](https://juejin.cn "稀土掘金论坛")。
这是一个链接:<a href="https://juejin.cn" title="稀土掘金论坛">稀土掘金首页</a>。
这是一个链接:稀土掘金首页。
图片
图片的语法形如。对应HTML中的<img>。
- 图片备用文字:图片加载失败后显示在图片位置的文字。对应HTML中
<img>标签的alt属性。 - 图片链接:图片的URL。对应HTML中
<img>标签的src属性。 - 图片标题:鼠标悬浮在图片上时显示的提示文字。对应HTML中
<img>标签的title属性。

<img src="https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/e682b11452d1453ea2f3df76bc9f05de~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5aSa5Y-2556s55uu6Jmr:q75.awebp?rk3s=f64ab15b&x-expires=1774101752&x-signature=C5tJRbPt620ikfE7bRqMj0Zp7gY%3D" alt="圆柱体.svg"></img>
转义字符
Markdown中转义字符
在标记字符前加\,会使其直接显示出来而不起到标记的作用,这种写法叫“转义”,就像C语言字符串中对字符转义那样。如果标记字符本来就没起到标记的作用,那它也会直接显示出来,不需要转义。比如-放在行首表示无序列表项,不放在行首就没起到标记的作用,会直接显示出来。
以下是标记中可能出现的字符,它们可能需要被转义:
| 字符 | 英文名 | 中文名 |
|---|---|---|
| \ | backslash | 反斜杠 |
| ` | backstick | 反引号 |
| * | asterisk | 星号 |
| _ | underscore | 下划线 |
| {} | curly braces | 大括号(花括号) |
| [] | brackets | 中括号(方括号) |
| () | parentheses | 小括号(圆括号) |
| # | pound sign | 警号 |
| + | plus sign | 加号 |
| - | minus sign (hyphen) | 短横线 |
| . | dot | 点 |
| ! | exclamation mark | 感叹号 |
| | | pipe | 管道符(竖线) |
HTML中转义字符
由于Markdown中可以直接嵌入HTML,所以也要考虑HTML中需要转义的字符。不过在Markdown中如果“<”不作为标签起始符号使用,会直接显示出来:“<”;如果“&”不作为实体起始符号使用时,也会直接显示出来:“&”。只有它们在HTML代码片段中才需要转义,使用HTML实体<和&。其实在需要显示HTML代码时,最好还是使用行内代码或者代码块。
表格
表格是一种扩展语法,现在的Markdown处理程序一般都支持。它对应HTML中的<table>及一系列相关标签。用|表示单元格左右的竖线,包裹单元格内容。表头和表格主体之间用一条横线分隔,就是每个单元格内放至少3个-。在这条分隔线上加:可以设置整列的对齐方式,:---就是左对齐,:---:就是居中对齐,---:就是右对齐,不加:就是用默认的对齐方式。
| 左对齐 | 居中对齐 | 右对齐 | 默认对齐 |
| :--- | :---: | ---: | --- |
| 1 | 2 | 3 | 4 |
| 5 | 6 | 7 | 8 |
<table>
<thead>
<tr>
<th style="text-align: left;">左对齐</th>
<th style="text-align: center;">居中对齐</th>
<th style="text-align: right;">右对齐</th>
<th>默认对齐</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">1</td>
<td style="text-align: center;">2</td>
<td style="text-align: right;">3</td>
<td>4</td>
</tr>
<tr>
<td style="text-align: left;">5</td>
<td style="text-align: center;">6</td>
<td style="text-align: right;">7</td>
<td>8</td>
</tr>
</tbody>
</table>
| 左对齐 | 居中对齐 | 右对齐 | 默认对齐 |
|---|---|---|---|
| 1 | 2 | 3 | 4 |
| 5 | 6 | 7 | 8 |
Latex公式
现在很多Markdown处理程序支持嵌入Latex公式。
行内公式
在公式前后各加1个或以上的$,表示一个行内公式。
一元二次方程求根公式:$x ={-b \pm \sqrt{b^2-4ac}\over 2a}$。
一元二次方程求根公式:。
公式块
在各加2个或以上的$,且它们都独占一行,表示一个公式块。
二项分布概率公式:
$$
P(x) ={n \choose k}p^k (1-p)^{n-k}
$$
二项分布概率公式:
Mermaid图表
现在很多Markdown处理程序也支持嵌入Mermaid图表,用来画流程图、时序图、类图、思维导图之类的。它的语法就是代码块,语言设置为mermaid,一般来说代码块中代码会按原样显示,不过这种代码块会被渲染成图表。
```mermaid
graph TD
Start --> Stop
```
graph TD
Start --> Stop