Markdown 格式使用指南 - Anki 卡片生成
2024/12/20

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 = 30

Python 函数

如何定义函数?

%

使用 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 图片

## 世界地图

这是世界地图:

![世界地图](https://example.com/world-map.png)

系统会自动下载图片并打包到 Anki 卡片中。

批量上传(ZIP)

支持两种方式

  1. 本地图片(推荐):

    • 将图片文件放在 ZIP 压缩包中
    • 在 Markdown 中使用相对路径引用
    obsidian-vault.zip
    ├── Python/
    │   ├── basics.md
    │   └── images/
    │       └── diagram.png
    └── JavaScript/
        └── async.md
    ## 异步编程
    
    这是流程图:
    
    ![流程图](./images/diagram.png)
  2. 外部 URL 图片

    ![图片](https://example.com/image.png)

📦 批量上传(子卡组功能)

使用批量上传功能,可以创建包含有序子卡组的 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 的卡片

注意事项

  1. 文件夹结构 = 子卡组层级:ZIP 内的文件夹结构会自动映射为 Anki 的子卡组
  2. 图片共享:所有 Markdown 文件可以共享 ZIP 内的图片
  3. 自动跳过单层目录:如果所有文件都在同一个顶级文件夹中,系统会自动跳过该层级

✨ Markdown 语法支持

系统支持完整的 Markdown 语法,包括:

  • 文本格式:粗体 **bold**、斜体 *italic*、删除线 ~~strike~~
  • 代码:行内代码 `code` 和代码块
  • 列表:有序列表和无序列表
  • 表格:标准 Markdown 表格
  • 图片![alt](url) 或 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:![img](https://example.com/pic.png)
  • 或使用批量上传功能,将图片打包在 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 语法

需要帮助? 如有问题,请查看示例文件或联系技术支持。

邮件列表

加入我们的社区

订阅邮件列表,及时获取最新消息和更新