MDUtil

Markdown 代码块和行内代码

用反引号包住的是行内代码,上下各一行三个反引号包住的是代码块。本文介绍语法高亮、语言名、在代码里显示反引号,以及 diff 代码块。

简短回答

Markdown 怎么写代码块?

在代码的上一行和下一行各写三个反引号。在开头的反引号后面写上语言名,例如 ```python,就会有语法高亮。句子里的代码用单个反引号包住:`代码`。

Markdown
```python
def greet(name):
    return f"你好,{name}!"
```

调用 `greet()` 时传入名字。

显示效果

def greet(name):
    return f"你好,{name}!"

调用 greet() 时传入名字。

代码的写法和示例

反引号里的内容会原样显示,代码里的 Markdown 符号不会被当作格式。

行内代码

单个反引号标出句子里的代码:命令、文件名和函数名。

Markdown
先运行 `npm install`,再打开 `src/index.ts`。

显示效果

先运行 npm install,再打开 src/index.ts。

带语言名的代码块

开头反引号后面的语言名会开启语法高亮。

Markdown
```js
const total = items.reduce((sum, item) => sum + item.price, 0);
console.log(total);
```

显示效果

const total = items.reduce((sum, item) => sum + item.price, 0);
console.log(total);

用 diff 显示改动

在 diff 代码块里,以 - 和 + 开头的行会分别标成删除和新增的颜色。

Markdown
```diff
- const rate = 0.2;
+ const rate = TAX_RATE;
```

显示效果

- const rate = 0.2;
+ const rate = TAX_RATE;

代码里的反引号

行内代码里有反引号时,外面用两个反引号;代码块里有三个反引号时,外面用更长的四个反引号。

Markdown
``用 `代码` 表示行内代码``

````markdown
```js
console.log("hi");
```
````

显示效果

用 `代码` 表示行内代码

```js
console.log("hi");
```

波浪号代码块

三个波浪号和三个反引号的效果相同,代码里反引号很多时更方便。

Markdown
~~~bash
echo "用 ``` 包住代码就是代码块"
~~~

显示效果

echo "用 ``` 包住代码就是代码块"

缩进代码块

每行开头缩进四个空格也是代码块,但不能指定语言,用反引号更清楚。

Markdown
    npm run build
    npm run start

显示效果

npm run build
npm run start

各平台的代码块支持

行内代码和反引号代码块几乎处处可用,语法高亮的支持程度不同。

应用支持情况说明
GitHub / GitLab支持支持数百种语言的高亮,mermaid 代码块会画成图表。
Discord支持写了语言名的代码块会高亮。
Slack有差异支持代码块,没有语法高亮。
Obsidian支持阅读视图有高亮,mermaid 代码块会画成图表。
Notion有差异用 /code 命令添加代码块,点击左上角的语言名称选择语言。
Typora支持支持高亮和 mermaid 图表。

常见问题

Markdown 行内代码怎么写?

用反引号包住:`npm install`。代码里有反引号时,外面用两个反引号并加空格:`` a`b ``。

怎样开启语法高亮?

在开头的反引号后面紧接着写语言名,例如 ```python 或 ```js。应用要支持语法高亮并认识这个语言名。

可以用哪些语言名?

常用的有 bash、c、cpp、csharp、css、diff、go、html、java、js、json、kotlin、markdown、php、python、ruby、rust、sql、swift、ts 和 yaml,GitHub 还支持数百种其他语言。

代码块里怎么显示三个反引号?

用四个反引号开始和结束代码块,或者改用三个波浪号 ~~~。

为什么代码块没有生效?

检查开头和结尾的反引号是否各自单独占一行、是否用同一种符号,以及结尾的符号是否不少于开头。在列表里,反引号要缩进到和列表项文字对齐。

能显示行号吗?

Markdown 没有行号语法,有些网站和编辑器可以通过自己的设置或插件显示行号。

怎样用代码块画图?

把代码块标成 mermaid,用 Mermaid 的语法写图表。GitHub、GitLab、Obsidian 会画出图表,Markdown 在线编辑器也可以。

Discord 和 Slack 支持代码块吗?

两者都支持行内代码和代码块。Discord 会按写明的语言高亮,Slack 只显示等宽字体的纯文本。