Markdown笔记(二):剩余的语法

0 阅读2分钟

引用

在行首加>,这样的行放在一起构成一个引用块,对应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属性。
![圆柱体.svg](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)
<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>

圆柱体.svg

转义字符

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实体&lt;&amp;。其实在需要显示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>
左对齐居中对齐右对齐默认对齐
1234
5678

Latex公式

现在很多Markdown处理程序支持嵌入Latex公式。

行内公式

在公式前后各加1个或以上的$,表示一个行内公式。

一元二次方程求根公式:$x ={-b \pm \sqrt{b^2-4ac}\over 2a}$。

一元二次方程求根公式:x=b±b24ac2ax ={-b \pm \sqrt{b^2-4ac}\over 2a}

公式块

在各加2个或以上的$,且它们都独占一行,表示一个公式块。

二项分布概率公式:
$$
P(x) ={n \choose k}p^k (1-p)^{n-k}
$$

二项分布概率公式:

P(x)=(nk)pk(1p)nkP(x) ={n \choose k}p^k (1-p)^{n-k}

Mermaid图表

现在很多Markdown处理程序也支持嵌入Mermaid图表,用来画流程图、时序图、类图、思维导图之类的。它的语法就是代码块,语言设置为mermaid,一般来说代码块中代码会按原样显示,不过这种代码块会被渲染成图表。

```mermaid
graph TD
Start --> Stop
```
graph TD
Start --> Stop