
Markdown 格式使用指南 - Anki 卡片生成
学习如何从 Markdown 文件创建 Anki 学习卡片。涵盖单文件上传、批量处理、格式规则、图片支持和最佳实践的完整指南。
Markdown 格式使用指南 - Anki 卡片生成
本文档说明如何编写 Markdown 文件来生成 Anki 学习卡片。遵循这些简单的规则,即可将您的笔记转换为高效的学习卡片。
📤 上传方式
单文件上传
通过上传界面上传单个 .md 文件。适合快速转换和较小的学习材料。
批量上传
上传包含多个 .md 文件的 ZIP 压缩包,可以创建包含子卡组的有序牌组。ZIP 文件中的文件夹结构会自动成为 Anki 中的子卡组。
📝 基本格式规则
1. 文档标题(可选)
在文件顶部使用一级标题(#)作为文档标题,这将成为卡组名称:
# Python 编程基础如果没有包含 # 标题,卡组名称将使用文件名或您指定的 deck_name 参数。
2. 章节分割(必需)
使用二级标题(##)来分割不同的卡片。每个 ## 章节标题 会生成一张独立的 Anki 卡片。
## 第一个知识点
这是第一张卡片的内容...
## 第二个知识点
这是第二张卡片的内容...⚠️ 重要:必须使用 ## 开头的二级标题,这是系统识别卡片的唯一方式。
3. 正反面分割(可选)
在每个章节内,使用 % 符号来分隔卡片的正面(问题)和反面(答案):
## 变量定义
这是问题部分
%
这是答案部分%之前的内容 → 卡片的正面(问题)%之后的内容 → 卡片的反面(答案)
如果没有 % 分隔符,整个章节的内容会作为正面,反面为空。
📋 完整示例
示例 1: 基础格式
# Python 编程基础
## 什么是 Python?
Python 是什么编程语言?
%
Python 是一种高级编程语言,特点包括:
- 简洁易读的语法
- 强大的标准库
- 广泛的应用领域(Web、数据科学、AI)
## Python 变量
如何定义 Python 变量?
%
使用 `=` 赋值:
```python
name = "Python"
age = 30Python 函数
如何定义函数?
%
使用 def 关键字:
def greet(name):
return f"Hello, {name}!"
**结果**:生成 3 张卡片,卡组名称为 "Python 编程基础"
### 示例 2: 无分隔符格式
```markdown
# 数学公式
## 导数的定义
导数是函数在某一点的瞬时变化率。
**数学定义**:
$$
f'(x) = \lim_{h \to 0} \frac{f(x+h) - f(x)}{h}
$$
**物理意义**:
- 速度是位移对时间的导数
- 加速度是速度对时间的导数结果:生成 1 张卡片,正面包含所有内容,反面为空
🖼️ 图片支持
单文件上传
仅支持外部 URL 图片:
## 世界地图
这是世界地图:
系统会自动下载图片并打包到 Anki 卡片中。
批量上传(ZIP)
支持两种方式:
-
本地图片(推荐):
- 将图片文件放在 ZIP 压缩包中
- 在 Markdown 中使用相对路径引用
obsidian-vault.zip ├── Python/ │ ├── basics.md │ └── images/ │ └── diagram.png └── JavaScript/ └── async.md## 异步编程 这是流程图:  -
外部 URL 图片:

📦 批量上传(子卡组功能)
使用批量上传功能,可以创建包含有序子卡组的 Anki 牌组。
ZIP 文件结构
my-study-deck.zip
├── Python/
│ ├── basics.md
│ └── advanced.md
├── JavaScript/
│ └── async.md
└── images/
└── diagram.png生成的卡组结构
My Study Deck (根卡组)
├── Python (子卡组)
│ ├── 来自 basics.md 的卡片
│ └── 来自 advanced.md 的卡片
└── JavaScript (子卡组)
└── 来自 async.md 的卡片注意事项
- 文件夹结构 = 子卡组层级:ZIP 内的文件夹结构会自动映射为 Anki 的子卡组
- 图片共享:所有 Markdown 文件可以共享 ZIP 内的图片
- 自动跳过单层目录:如果所有文件都在同一个顶级文件夹中,系统会自动跳过该层级
✨ Markdown 语法支持
系统支持完整的 Markdown 语法,包括:
- ✅ 文本格式:粗体
**bold**、斜体*italic*、删除线~~strike~~ - ✅ 代码:行内代码
`code`和代码块 - ✅ 列表:有序列表和无序列表
- ✅ 表格:标准 Markdown 表格
- ✅ 图片:
或 HTML<img>标签 - ✅ 链接:
[text](url) - ✅ 数学公式:LaTeX 数学公式(如果渲染器支持)
代码块示例
## Python 函数
如何定义函数?
%
使用 `def` 关键字:
```python
def greet(name):
"""问候函数"""
return f"Hello, {name}!"
```列表示例
## Python 特点
Python 有哪些特点?
%
- **简洁**:代码简洁易读
- **强大**:丰富的标准库
- 内置数据结构
- 网络编程
- 数据处理
- **应用广泛**:Web、数据科学、AI表格示例
## 数据类型对比
不同数据类型的区别?
%
| 类型 | 可变性 | 示例 |
|------|--------|------|
| List | 可变 | `[1, 2, 3]` |
| Tuple | 不可变 | `(1, 2, 3)` |
| Dict | 可变 | `{"key": "value"}` |🏷️ 标签(Tags)
自动标签
- 章节标题作为标签:每个章节的标题会自动添加为标签(经过 sanitize 处理)
- 子卡组名称作为标签:在批量上传中,子卡组名称也会添加为标签
示例
## Python 变量定义生成的标签:["Python_变量定义"](特殊字符会被替换)
⚠️ 常见错误
❌ 错误 1: 没有使用二级标题
# 错误示例
Python 是什么?
%
Python 是一种编程语言。问题:没有 ## 标题,系统无法识别为卡片
正确写法:
# Python 基础
## Python 是什么?
Python 是什么?
%
Python 是一种编程语言。❌ 错误 2: 二级标题格式错误
##标题(缺少空格)正确写法:
## 标题(注意空格)❌ 错误 3: 单文件上传使用本地图片
错误:在单文件上传中使用 ./images/pic.png
解决方案:
- 使用外部 URL:
 - 或使用批量上传功能,将图片打包在 ZIP 中
📚 最佳实践
1. 清晰的章节标题
使用描述性的标题,便于查找和复习:
## Python 变量定义与赋值
## JavaScript 异步编程 Promise
## 数学:微积分基础2. 合理使用分隔符
- 简单问题可以用
%分隔 - 复杂内容可以不用
%,将全部内容作为正面
3. 图片优化
- 使用合适的图片大小(避免文件过大)
- 使用清晰的图片(PNG 适合图表,JPG 适合照片)
- 批量上传时,将相关图片放在同一文件夹下
4. 代码格式化
使用代码块时,指定语言类型以获得语法高亮:
```python
def hello():
print("Hello")
```
```javascript
function hello() {
console.log("Hello");
}
```5. 组织结构
批量上传时,按主题组织文件夹:
programming.zip
├── Python/
│ ├── basics.md
│ └── advanced.md
├── JavaScript/
│ └── async.md
└── DataStructures/
└── tree.md🔍 快速检查清单
在上传前,请确认:
- 每个知识点都以
## 标题开头 - 标题和
##之间有空格 - 图片路径正确(单文件用 URL,批量上传可用相对路径)
- 代码块使用正确的语言标识符
- ZIP 文件包含
.md文件(批量上传) - 文件编码为 UTF-8
💡 提示
- 章节标题会成为卡片的标签,便于在 Anki 中筛选
- 使用批量上传可以创建有层级的卡组结构
- 图片会自动下载并打包,无需手动处理
- 支持所有标准的 Markdown 语法
需要帮助? 如有问题,请查看示例文件或联系技术支持。
作者

邮件列表
加入我们的社区
订阅邮件列表,及时获取最新消息和更新