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 只显示等宽字体的纯文本。