建立共同基础
Markdown 学习教程
从标题与代码块,到公式、图片和完整学习笔记。
展开本篇目录
一、什么是 Markdown?
Markdown 是一种轻量级标记语言。它通过少量、容易记忆的符号来表示标题、列表、代码、链接、表格等内容。Markdown 文件通常以 .md 作为扩展名。
例如,下面几行文字:
|
在支持 Markdown 的软件中,会显示为一个标题、一段文字和一个列表。
Markdown 有什么用?
- 写课程笔记、实验报告和学习总结。
- 编写 GitHub 项目的
README.md文件。 - 整理技术文档、代码示例和数学公式。
- 在支持 Markdown 的平台上发布文章或知识库内容。
注意: Markdown 有不同的实现版本。标题、列表、代码块等属于常见基础语法;表格、任务列表、数学公式等功能是否可用,取决于编辑器或平台。下文会标明需要注意的地方。
二、创建和预览 Markdown 文件
- 使用 VS Code、Typora、Obsidian 或其他文本编辑器新建文件。
- 将文件保存为
学习笔记.md等以.md结尾的文件名。 - 在编辑器中切换到 Markdown 预览模式,检查最终显示效果。
- 修改内容后再次预览,确认格式没有问题。
Markdown 源文件本质上是普通文本。即使没有预览功能,也可以直接编辑;只是需要支持 Markdown 的软件才能把语法符号渲染成排版后的效果。
三、标题
在文字前添加 # 表示标题。# 后面建议留一个空格。
|
说明:
#的数量越多,标题层级越低。- 一般按层级组织内容,不要为了让文字变大而随意跳级。
- 一个文档通常只设置一个一级标题,后续章节使用二级、三级标题。
四、段落、换行和分隔线
4.1 段落
段落之间空一行:
|
4.2 换行
不同编辑器对换行的处理可能不同。常见写法是在行尾添加两个空格,或者使用空行开始新段落。
|
4.3 分隔线
单独一行输入三个或更多的短横线,可以生成分隔线:
|
分隔线适合分隔较大的内容区域,不建议频繁使用。
五、文字强调与特殊格式
| 效果 | Markdown 写法 | 显示效果示例 |
|---|---|---|
| 粗体 | **重点内容** |
重点内容 |
| 斜体 | *需要强调的文字* |
需要强调的文字 |
| 粗体和斜体 | ***非常重要*** |
非常重要 |
| 删除线 | ~~已删除内容~~ |
|
| 行内代码 | `printf()` |
printf() |
加粗:
**加粗文本**或__加粗文本__→ 加粗文本斜体:
*斜体文本*或_斜体文本_→ 斜体文本粗斜体:
***粗斜体文本***或___粗斜体文本___→ 粗斜体文本
行内代码常用于表示变量名、函数名、命令、文件名或短代码,例如 main.c、git status、printf()。
注意: 删除线通常属于扩展语法;在一些平台上可能无法显示。
六、列表
6.1 无序列表
可以使用 -、* 或 + 创建无序列表。一个文档中建议统一使用一种符号。
|
6.2 有序列表
使用数字和英文句点创建有序列表:
|
6.3 嵌套列表
子列表前面添加缩进:
|
6.4 任务列表
在支持任务列表的平台(例如 GitHub)中,可以使用以下写法:
|
其中 [x] 表示已完成,[ ] 表示未完成。
七、引用
在一行前添加 > 可以创建引用块。
|
引用可以用来突出名言、说明、提示或资料摘录。部分 Markdown 平台支持引用块中嵌套标题、列表等内容。
八、代码:行内代码和代码块
8.1 行内代码
用一对反引号包住短代码:
|
显示效果:使用 printf() 输出内容。
8.2 多行代码块
在代码前后各写三个反引号:
|
8.3 指定代码语言
在开头的三个反引号后写语言名称,部分编辑器会提供语法高亮。
C 语言示例:
|
渲染效果:
|
Python 示例:
|
渲染效果:
|
常见语言标识包括:c、cpp、python、java、javascript、bash、html、css、sql、json、text。
代码块使用建议:
- 示例程序要尽量完整,方便读者理解和运行。
- 使用正确的语言标识,便于阅读。
- 代码缩进要保持一致。
- 代码块只负责显示代码,不会自动运行代码。
九、数学公式
数学公式通常使用 LaTeX 风格的语法。公式语法并非所有 Markdown 编辑器都默认支持;请确认平台是否支持数学公式渲染。
9.1 行内公式
使用一对 $ 包住公式:
|
显示效果示例:圆的面积为 。
9.2 独立公式
使用一对 $$ 将公式单独放在一行或多行中:
|
显示效果示例:
9.3 常用公式写法
| 内容 | LaTeX 写法 | 含义 |
|---|---|---|
| 上标 | x^2 |
|
| 下标 | a_n |
|
| 分数 | \frac{a}{b} |
|
| 平方根 | \sqrt{x} |
|
| c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14 | ||
| c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54 | ||
| c44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10 | ||
| s173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429 | ||
| c69,-144,104.5,-217.7,106.5,-221 | ||
| l0 -0 | ||
| c5.3,-9.3,12,-14,20,-14 | ||
| H400000v40H845.2724 | ||
| s-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7 | ||
| c-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z | ||
| M834 80h400000v40h-400000z”/> | ||
| n 次根 | \sqrt[n]{x} |
|
| c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14 | ||
| c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54 | ||
| c44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10 | ||
| s173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429 | ||
| c69,-144,104.5,-217.7,106.5,-221 | ||
| l0 -0 | ||
| c5.3,-9.3,12,-14,20,-14 | ||
| H400000v40H845.2724 | ||
| s-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7 | ||
| c-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z | ||
| M834 80h400000v40h-400000z”/> | ||
| 求和 | \sum_{i=1}^{n} i |
|
| 积分 | \int_a^b f(x)\,dx |
|
| 希腊字母 | \alpha, \beta, \pi |
|
| 约等于 | \approx |
|
| 不等于 | \ne |
|
| 大于等于 | \ge |
|
| 小于等于 | \le |
9.4 矩阵示例
|
在支持 LaTeX 数学公式的环境中,它会显示为一个矩阵:
9.5 公式中的常见规则
下标使用
_,上标使用^。如果上标或下标包含多个字符,通常要用花括号,例如
x_{max}、2^{10}。公式里的命令通常以反斜杠
\开头,例如\frac、\sqrt。如果公式显示为普通文字,先检查编辑器或平台是否支持数学公式。
在行间公式嵌入 LaTeX 公式环境,示例:
|
- 使用
\tag{}命令为公式手动指定一个编号或标记,用于公式的引用和说明,\tag*{}命令可以去除包围标签的圆括号,在引用公式时,标签需手动输入,示例:
|
十、表格
Markdown 表格通过竖线 | 分隔列,通过短横线 - 分隔表头与内容行。
|
显示效果:
| 姓名 | 专业 | 年级 |
|---|---|---|
| 张三 | 通信工程 | 大一 |
| 李四 | 计算机科学与技术 | 大二 |
10.1 设置对齐方式
在分隔线中添加冒号 : 可以设置列的对齐方式。
|
显示效果:
| 左对齐 | 居中对齐 | 右对齐 |
|---|---|---|
| 文本 | 文本 | 123 |
| 内容 | 内容 | 456 |
10.2 表格编写建议
- 表头要简短、清楚。
- 每一行的列数尽量一致。
- 表格适合呈现简洁、规律的数据,不适合放大段文字或复杂代码。
- 不同平台对表格的支持可能存在差异。
十一、链接
11.1 网页链接
基本格式为 [显示文字](网址)。
|
显示效果:GitHub 官网
11.2 本地文件链接
如果文件与 Markdown 文档放在同一目录,可以使用相对路径链接:
|
如果文件位于子目录中,可以写成:
|
相对路径是否可点击、如何打开,取决于编辑器或发布平台。
行内链接
行内链接直接在行内定义链接的文本和地址。其格式可表示为[显示文本](链接地址 "可选标题"),显示文本 是页面上显示的文字,链接地址 是链接的实际地址,"可选标题"是鼠标悬停在链接上时出现的提示文字,可以省略。
示例:
[微信官网](https://weixin.qq.com/ "微信官网") → 微信官网[1]
参考链接
当同一个链接在文章中出现多次时,使用这种方法可以方便统一管理。语法分为两部分:
- 链接位置:在文中需要链接的地方写
[链接文字][链接标识]。 - 链接定义:在文档的任意位置(通常放在末尾)写
[链接标识]: 真实的链接地址。
示例:
|
自动链接
用尖括号 < > 包裹网址或邮箱地址,Markdown 会自动将其转换为可点击的链接。
锚点链接
锚点链接用于在当前文档内部进行跳转,通常需要为标题定义一个标识符,然后用普通链接语法指向它。语法分两个部分:
- 定义锚点:在标题后加上 {[#自定义锚点名称]},例如:
## 章节标题 {#section1}。 - 链接到锚点:
[跳转到某一章](#section1)。
十二、图片
图片语法与链接相似,只是在最前面增加感叹号 !。
|
其中:
图片说明是图片无法显示时可供读者理解的替代文字,也有助于无障碍阅读。images/circuit.png是图片路径。images是图片所在文件夹,circuit.png是图片文件名。
图片路径示例
假设项目目录如下:
|
那么在 README.md 中可以写:
|
提示: 发布到 GitHub 等平台时,优先使用仓库内的相对路径,保证图片文件也一起提交。不要随意移动图片文件,否则可能导致路径失效。
十三、转义特殊字符
有些字符在 Markdown 中有特殊含义。如果想让它直接显示,可以在字符前添加反斜杠 \。
例如:
|
常见需要转义的字符包括:\、`、*、_、{}、[]、()、#、+、-、.、!、|。
在表格单元格中,如果需要显示竖线 |,通常可写成 \|;具体表现仍与平台有关。
十四、脚注与目录:按需使用
这两类功能常由编辑器或平台扩展提供,并非所有 Markdown 环境都支持。
14.1 脚注示例
部分平台支持以下写法:
|
14.2 目录示例
部分编辑器支持自动生成目录;有些平台支持手动链接到标题。标题锚点的生成规则可能因平台而异,例如:
|
若跳转失败,请检查平台生成的标题锚点规则。长文档建议优先使用编辑器提供的自动目录功能。
复杂样式
Markdown 本身不支持复杂样式,但可通过嵌入 HTML 标签并结合 CSS 样式实现个性化排版,核心是利用 HTML 的 style 属性或 <style> 标签定义样式。
Markdown 已实现的文本样式:
- 加粗文本:
<strong>/<b> - 倾斜文本:
<em>/<i> - 删除线:
<del> - 分割线:
<hr> - 行内代码:
<code> - 代码块:
<pre> - 行内引用:
<q> - 引用块:
<blockquote>
使用 HTML 标签可实现 Markdown 无法实现的文本样式,例如:
- 上标:
<sup>上标</sup>。X<sup>2</sup>→ X2 - 下标:
<sub>下标</sub>。Y<sub>2</sub>→ Y2 - 下划线:
<u>下划线</u>或<ins>下划线</ins>→ 下划线 - 高亮文本:
<mark>高亮文本</mark>→高亮文本
使用 <div> 标签下的 align 属性可以设置文本对齐方式,文本对齐示例:
这段文本居左显示
这段文本居中显示
这段文本居右显示
|
使用 <font> 标签下的 color 属性可以设置文本颜色,face 属性可以设置文本字体,size 属性可以设置文本字号,文本颜色示例:
这是红色文字
这是黄色文字
这是绿色文字
这是蓝色文字
|
十五、一个综合示例
下面是一份结合标题、列表、代码、公式、表格和图片的 Markdown 文档示例。可以复制后修改内容,作为自己的学习笔记模板。
|
十六、常见问题排查
| 问题 | 可能原因 | 解决方法 |
|---|---|---|
| 标题没有显示为标题 | # 后没有空格,或预览模式未开启 |
写成 # 标题,并打开 Markdown 预览 |
| 代码没有高亮 | 没有指定语言,或平台不支持该语言的高亮 | 使用 ```python、```c 等语言标识 |
| 公式显示成普通文字 | 当前平台不支持数学公式,或公式符号写错 | 检查平台功能和 $、$$ 的配对 |
| 图片无法显示 | 图片路径错误,文件不在指定位置 | 检查相对路径、文件名和大小写 |
| 表格错位 | 列数不一致,分隔符遗漏 | 检查每一行的 ` |
| 符号被解释成格式 | 使用了 Markdown 特殊字符 | 在字符前添加 \,或将内容放入代码格式 |
| 代码块提前结束 | 代码内部也包含三个反引号 | 外层代码围栏可以改用四个反引号 |
十七、练习
请新建一个 markdown_practice.md 文件,完成以下任务:
- 写一个一级标题和至少两个二级标题。
- 写一个无序列表和一个有序列表。
- 用粗体标出一个重要概念,并添加一段引用。
- 插入一个 C 语言或 Python 代码块。
- 写出一个行内数学公式和一个独立数学公式。
- 创建一个至少三列、两行数据的表格,并设置其中一列右对齐。
- 添加一个网页链接和一张本地图片。
- 在预览模式中检查文档效果。
十八、常用语法速查表
| 功能 | 写法示例 |
|---|---|
| 一级标题 | # 标题 |
| 二级标题 | ## 标题 |
| 粗体 | **文字** |
| 斜体 | *文字* |
| 删除线 | ~~文字~~ |
| 无序列表 | - 内容 |
| 有序列表 | 1. 内容 |
| 引用 | > 引用内容 |
| 行内代码 | `print()` |
| 多行代码 | ```python ... ``` |
| 行内公式 | $a+b$ |
| 独立公式 | $$a+b$$ |
| 链接 | [显示文字](https://example.com) |
| 图片 |  |
| 表格 | ` |
| 分隔线 | --- |
| 转义符号 | \# |
| 任务列表 | - [ ] 待办事项 |