前言
记得刚工作那会儿,每次要写文档我就头疼。用Word吧,格式调半天;用Pages吧,mac专属传给别人还打不开;直接写txt吧,又太丑了……
直到有一天,项目组的学长丢给我一个.md后缀的文件,说”这个你看一下”。我一脸懵地点开,发现排版还挺好看,心想这人真厉害,用什么软件排的版这么好。
后来才知道,这玩意叫Markdown,压根不是什么专业排版软件,就是纯文本!用几个简单的符号就能控制格式,特别适合程序员写文档。
现在我写博客、写项目文档、写笔记,80%都是用Markdown。它简单、通用、专注内容,而且GitHub、掘金、CSDN这些平台都原生支持Markdown格式。
这篇文章就是用Markdown写的,带你从零学会Markdown语法。看完你就能写出漂亮的文档了。

什么是Markdown?
一句话解释
Markdown是一种轻量级标记语言,由约翰·格鲁伯(John Gruber)在2004年创建。它的设计理念是”用易读易写的纯文本格式编写文档,然后转换成结构化的HTML”。
通俗点说就是:
- 易读:就算不转换成HTML,原始文本也好看
- 易写:不用复杂的菜单和快捷键,用符号标记格式
- 通用:任何文本编辑器都能打开
为什么程序员都在用?
作为一个写了十几年代码的程序员,我总结了几个原因:
1. 专注内容而非格式
写Word的时候,你是不是经常花半小时调格式,结果正文就几句话?Markdown让你专注于写作本身,格式只是顺手的事。
2. 版本控制友好
Markdown本质是纯文本,可以用Git管理。每次修改都能看到改了哪里,再也不会有”文档覆盖了怎么办”的烦恼。
3. 到处都能用
GitHub的README是Markdown,博客平台支持Markdown,甚至很多笔记软件也支持Markdown。一套语法,走遍天下。
4. 转换方便
一份Markdown可以轻松转换成HTML、PDF、Word、EPUB等多种格式,满足各种场景需求。
基础语法
标题
用#符号表示标题,几个#就是几级标题:
markdown
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题
渲染效果:
一级标题
二级标题
三级标题
四级标题
小技巧:建议最多用三级标题就够了,太多层级会让文档变得难读。
段落和换行
段落的分隔用空行:
markdown
这是第一段文字。
这是第二段文字,它们之间隔了一个空行。
行内换行(不隔段)有两种方式:
markdown
方法1:在行尾加两个空格
这是一行,
这是另一行(行尾加了两个空格)。
方法2:用<br>标签
这是第一行<br>这是第二行
字体样式
markdown
*斜体文本* 或 _斜体文本_
**粗体文本** 或 __粗体文本__
***粗斜体*** 或 ___粗斜体___
~~删除线~~
渲染效果:
- 斜体文本
- 粗体文本
- 粗斜体文本
删除线
分隔线
三个或更多的-或*:
markdown
---
或者
***
或者
___
渲染效果:
列表
无序列表用-、*或+(建议统一使用一种):
markdown
- 苹果
- 香蕉
- 苹果蕉(缩进一个Tab或两个空格)
- 普通香蕉
- 国产香蕉
- 进口香蕉
- 橙子
渲染效果:
- 苹果
- 香蕉
- 苹果蕉
- 普通香蕉
- 国产香蕉
- 进口香蕉
- 橙子
有序列表用数字加点:
markdown
1. 第一步
2. 第二步
3. 第三步
渲染效果:
- 第一步
- 第二步
- 第三步
引用
用>符号表示引用:
markdown
> 这是一段引用文字。
> 可以有多行。
>
> 空一行后继续引用。
渲染效果:
这是一段引用文字。
可以有多行。空一行后继续引用。
引用可以嵌套:
markdown
> 外层引用
>> 内层引用
>>> 再嵌套一层
实用的引用写法:
markdown
> [!NOTE]
> 这是一个提示信息框
> [!WARNING]
> 这是一个警告信息框
> [!TIP]
> 这是一个技巧提示框
链接
markdown
[链接文字](https://example.com)
[链接文字](https://example.com "鼠标悬停显示的标题")
渲染效果:
链接文字
自动链接(尖括号包起来):
markdown
<https://example.com>
<email@example.com>
参考式链接(链接多的时候用):
markdown
我经常访问[Google][google]和[百度][baidu]。
[google]: https://www.google.com "Google搜索"
[baidu]: https://www.baidu.com "百度搜索"
图片
markdown


本地图片用相对路径:
markdown

代码
行内代码用反引号:
markdown
这是 `console.log()` 方法,用于输出日志。
这是 `const PI = 3.14;` 常量定义。
渲染效果:
这是 console.log() 方法,用于输出日志。
代码块用三个反引号,并可指定语言:
markdown
```javascript
function hello() {
console.log("Hello, World!");
}
```
渲染效果:
javascript
function hello() {
console.log("Hello, World!");
}
常用语言标记:
javascript或jspython或pyhtmlcssjavasqlbash或shelljsonyaml
进阶语法
表格
markdown
| 表头1 | 表头2 | 表头3 |
|-------|-------|-------|
| 单元格1 | 单元格2 | 单元格3 |
| 单元格4 | 单元格5 | 单元格6 |
渲染效果:
| 表头1 | 表头2 | 表头3 |
|---|---|---|
| 单元格1 | 单元格2 | 单元格3 |
| 单元格4 | 单元格5 | 单元格6 |
对齐方式:
markdown
| 左对齐 | 居中对齐 | 右对齐 |
|:------|:-------:|------:|
| 文字 | 文字 | 文字 |
渲染效果:
| 左对齐 | 居中对齐 | 右对齐 |
|---|---|---|
| 文字 | 文字 | 文字 |
任务列表
markdown
- [x] 已完成的任务
- [ ] 未完成的任务
- [ ] 还有一个任务
下面是打钩的任务:
- [x] 学习Markdown语法
- [x] 写第一篇文档
- [ ] 分享给朋友
渲染效果:
- 已完成的任务
- 未完成的任务
- 还有一个任务
脚注
markdown
这是一段文字[^1]。
这是另一段文字[^2]。
[^1]: 这是脚注1的说明。
[^2]: 这是脚注2的说明,可以写很长。
目录
有些编辑器支持自动生成目录:
markdown
[TOC]
# 第一章
## 第一节
## 第二节
# 第二章
注释
Markdown本身不支持注释,但可以用HTML的注释语法:
markdown
<!-- 这是被注释的内容,在最终输出中不可见 -->
常见应用场景
1. GitHub项目README
markdown
# 项目名称
简洁的项目介绍,一句话说清楚是做什么的。
## 特性
- ✅ 特性一
- ✅ 特性二
- 🚧 正在开发
## 安装
```bash
npm install my-project
使用
javascript
import { foo } from 'my-project';
foo({
option1: 'value1',
option2: 'value2'
});
API
foo(options)
| 参数 | 类型 | 说明 |
|---|---|---|
| option1 | string | 选项1 |
| option2 | string | 选项2 |
贡献
欢迎提交Pull Request!
许可证
MIT © 2024
plaintext
### 2. 写技术博客
```markdown
---
title: JavaScript入门教程
date: 2024-01-15
tags: [JavaScript, 入门教程]
---
# JavaScript入门教程:前端开发第一步
## 前言
开门见山介绍文章要讲什么。
## 正文
### 小标题
内容……
### 代码示例
```javascript
const hello = () => console.log('Hello!');
总结
回顾今天学的内容。
参考资料
plaintext
### 3. 课堂笔记
```markdown
# JavaScript学习笔记
## 2024-01-10 变量和数据类型
### 知识点
- let和const的区别
- 6种基本数据类型
- 类型转换
### 练习题
- [x] 完成P23页练习1-3
- [ ] 完成P25页练习4-6
- [ ] 完成P30页综合练习
### 问题记录
- 为什么要用const而不是let?
- 答:const声明的变量不能重新赋值,更安全
- 什么时候用null?
- 答:表示空对象,通常用于初始化
### 代码练习
```javascript
// 练习1:变量声明
const name = '张三';
let age = 18;
age = 19; // let可以重新赋值
今日收获
今天学习了JavaScript的基础知识,理解了变量声明的区别。
plaintext
### 4. 个人简历
```markdown
# 张三
资深前端开发工程师 | 5年经验
## 联系方式
- 📧 zhangsan@example.com
- 📱 138-xxxx-xxxx
- 🌐 www.example.com
## 技能
| 技能 | 熟练度 |
|------|--------|
| HTML/CSS | ⭐⭐⭐⭐⭐ |
| JavaScript | ⭐⭐⭐⭐⭐ |
| React | ⭐⭐⭐⭐ |
| Vue | ⭐⭐⭐⭐⭐ |
| Node.js | ⭐⭐⭐ |
## 项目经验
### 项目一:电商网站
2022.03 - 2023.06
- 技术栈:React + Node.js + MongoDB
- 项目描述:实现了商品展示、购物车、订单管理等功能
- 核心贡献:
- 优化首屏加载速度,提升40%
- 设计并实现用户积分系统
- GitHub:https://github.com/xxx/project
### 项目二:企业内部管理系统
2021.01 - 2022.02
- 技术栈:Vue3 + Element Plus
- 项目描述:用于企业内部资源管理和审批流程
## 工作经历
### ABC科技有限公司 | 前端开发工程师 | 2020.06 - 至今
- 负责前端技术选型和架构设计
- 带领3人小组完成项目交付
## 教育背景
- 📚 北京大学 | 计算机科学 | 本科 | 2016-2020
常用编辑器推荐
1. Typora(强烈推荐)
我最常用的Markdown编辑器,界面简洁,实时预览,完全免费。
特点:
- 所见即所得,编辑和预览合一
- 支持所有标准Markdown语法
- 支持LaTeX数学公式
- 支持拖拽插入图片
2. VS Code + Markdown插件
如果你是程序员,用VS Code装个Markdown插件也很方便:
必装插件:
- Markdown All in One:自动补全、目录生成、快捷键支持
- Markdown Preview Enhanced:增强的预览功能
- Markdown PDF:导出为PDF
- Markdown Emoji:Emoji自动补全
安装插件后,按Ctrl+Shift+P,输入Markdown,选择”打开预览”即可。
3. 作业部落
在线Markdown编辑器,有客户端,适合不想安装软件的人。
特点:
- 在线编辑,无需安装
- 支持实时同步
- 有分享功能
4. MarkText
免费开源的Markdown编辑器,界面好看,支持多种主题。
特点:
- 开源免费
- 界面美观
- 跨平台支持
5. Notion
不只是Markdown编辑器,是一个强大的笔记和知识管理工具。
特点:
- 块编辑器的概念
- 数据库功能强大
- 团队协作友好
Markdown vs 富文本编辑器
| 特性 | Markdown | Word/Pages |
|---|---|---|
| 格式兼容性 | 纯文本,到处都能打开 | 依赖特定软件 |
| 版本控制 | 可以用Git管理 | 二进制文件,冲突多 |
| 协作 | GitHub/GitLab原生支持 | 需要专门协作工具 |
| 学习成本 | 5分钟入门 | 需要熟悉各种菜单 |
| 排版控制 | 基础够用 | 更精细(但一般用不上) |
| 表格 | 支持但不太方便 | 更方便 |
| 导出格式 | HTML/PDF/Word | 原生支持 |
实战技巧
1. 插入Emoji
Markdown支持Emoji,有两种方式:
使用Emoji符号:
markdown
常见的Emoji:
✅ 完成 - :white_check_mark:
❌ 错误 - :x:
⚠️ 警告 - :warning:
📝 笔记 - :pencil:
🔗 链接 - :link:
💡 提示 - :bulb:
🎉 庆祝 - :tada:
🔥 热门 - :fire:
直接输入Emoji:
🍎 🍌 🍊
2. 插入LaTeX数学公式
很多Markdown编辑器支持LaTeX公式:
markdown
行内公式:$E=mc^2$
独立公式:
$$
\int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}
$$
矩阵:
$$
\begin{pmatrix}
a & b \\
c & d
\end{pmatrix}
$$
渲染效果:
- 行内公式:
- 独立公式:
3. 流程图和时序图
有些编辑器支持Mermaid语法:
markdown
```mermaid
flowchart TD
A[开始] --> B{判断}
B -->|是| C[执行1]
B -->|否| D[执行2]
C --> E[结束]
D --> E
```
渲染效果:
mermaid
flowchart TD
A[开始] --> B{判断}
B -->|是| C[执行1]
B -->|否| D[执行2]
C --> E[结束]
D --> E
时序图示例:
markdown
```mermaid
sequenceDiagram
客户端->>服务器: 请求
服务器-->>客户端: 响应
Note over 客户端,服务器: 这个注释跨越两者
```
4. 高亮提示框
虽然Markdown原生不支持,但可以用HTML:
markdown
> [!NOTE]
> 这是一个提示框,提示用户注意某些信息
> [!WARNING]
> 这是一个警告框,提醒用户注意潜在问题
> [!TIP]
> 这是一个技巧框,分享一些实用技巧
5. 键盘按键表示
markdown
按 `Ctrl` + `C` 复制
按 `Ctrl` + `V` 粘贴
按 `Ctrl` + `Z` 撤销
渲染效果:
按 Ctrl + C 复制
我的Markdown工作流
作为一个经常写文档的人,我现在的流程是:
- 速记:想到什么,用Typora快速写成Markdown
- 整理:结构化内容,补充细节
- 发布:转换成HTML/PDF,或直接发到博客平台
- 同步:用iCloud/Dropbox同步,多设备通用
工作场景
写项目文档:
- 用Typora写 → 导出HTML或PDF
- 或者直接在GitHub上编辑.md文件
写博客:
- 用Typora写
- 复制内容到掘金/CSDN
- 或者用Hexo/Hugo静态博客生成器
做笔记:
- 用Notion或Typora
- 配合云同步,多端访问
常见问题
Q: Markdown能完全替代Word吗?
A: 不能。Word的协作修订、精确排版等功能Markdown做不到。但对于技术文档、博客、笔记,Markdown完全够用。
Q: 表格太难写了怎么办?
A: 可以用在线工具生成:
Q: Markdown语法记不住怎么办?
A: 用多了就记住了。刚开始可以打印一份语法速查表放旁边。
Q: 为什么图片显示不出来?
A: 检查图片路径是否正确。本地图片用相对路径或绝对路径,网络图片确保URL可访问。
Q: 如何让代码块高亮显示?
A: 在代码块开头指定语言,如 ```javascript。
速查表
plaintext
=============== 标题 ===============
# 一级标题
## 二级标题
### 三级标题
=============== 字体 ===============
*斜体* 或 _斜体_
**粗体** 或 __粗体__
***粗斜体***
~~删除线~~
=============== 列表 ===============
- 无序列表项
1. 有序列表项
=============== 链接和图片 ===============
[文字](URL)

=============== 代码 ===============
`行内代码`
```语言
代码块
```
=============== 引用 ===============
> 引用内容
=============== 表格 ===============
| 列1 | 列2 |
|------|------|
| 内容 | 内容 |
=============== 其他 ===============
---
分隔线
- [ ] 任务列表
总结
Markdown是程序员的必备技能,简单易学,通用性强。一旦熟练了,你会发现写文档变得轻松很多——不用再和格式斗争,只需要专注于内容本身。
建议现在就打开Typora或VS Code,试着写一篇你自己的Markdown文档。可以从写一份个人简历或者项目README开始。
相关推荐:
Markdown,让写作回归内容本身。

发表回复