---
name: markji-cards
description: 把学习材料（课本、笔记、错题、单词、古诗文、知识点等）整理成「墨墨记忆卡」批量导入所需的标记语法。只要用户提到墨墨记忆卡、墨墨卡片、制作记忆卡片/抽认卡/闪卡、批量导入卡片、把某段内容做成卡片背诵，或给出一段材料要求"做成卡片/挖空/出题/转成墨墨格式"，都要使用本 skill。即使用户没有点名"墨墨"，只要目标是产出可直接粘贴导入墨墨的卡片文本，也应使用。本 skill 同时内置了制卡的质量原则，确保生成的卡片简短、好记、抗干扰。
metadata: {"author":"tianfangyetan1"}
---

# 墨墨记忆卡 · 批量导入与制卡

「墨墨记忆卡」是一款使用间隔重复（SRS）的卡片记忆软件。本 skill 用于把材料转换成它的**批量导入文本格式**，并按良好制卡原则组织内容。

输出物始终是一段**纯文本**，用户复制后即可在墨墨中批量导入。除非用户另有要求，直接把成品放进一个代码块或 `.txt` 文件，便于整段复制。

---

## 一、批量导入的整体格式

批量导入时遵循三条硬规则：

1. **一次导入只能进入一个牌组**。不要在同一段文本里混入属于不同牌组的内容。
2. `###` 开头的行是**章节名**，用于在牌组内分章。
3. `===` 单独成行，是**两张卡片之间的分隔线**。

```
###章节名
卡片1的全部内容
===
卡片2的全部内容
===
卡片3的全部内容
```

一张卡片内部可以有多行（题目、`---`、答案、挖空、选择题等），只要不出现 `===` 就都算同一张卡。章节名之后、下一个 `###` 之前的所有卡片都归入该章节。

> `###` 和 `===` 是**批量导入时的默认标识符**。导入界面可手动改成其他标识符，但一般不需要，沿用默认即可。

---

## 二、复习时的呈现机制（决定排版顺序，务必理解）

复习一张卡片时，用户**点击任意位置**逐步揭示答案。系统从上到下，每次揭示**下一个可交互元素**的答案。可交互元素有四类，各算一个：

- 一个挖空 `[F#…#…]`
- 一个选择题 `[Choice#…#…]`
- 一条答案线 `---` 下方的答案
- 一张带遮罩的图片 `[Pic#…,MID/…#]`（整张图的遮罩算**一个**，见 §9）

全部元素揭示完后，提示用户选择记忆状态（**认识 / 模糊 / 忘记**），然后进入下一张卡片。

含义：**元素出现的先后顺序 = 揭示顺序**。设计卡片时要让"先看到的提示 → 后揭示的答案"这一顺序符合记忆逻辑（先给线索，再给答案）。同一张卡片放太多互相独立的元素会让揭示过程冗长，违背"最小信息原则"（见制卡原则）。

注意：行内样式 `[T#…]`、段落 `[P#…]`、公式 `[E##…]`、发音 `[Audio#…]`、引用 `[Card#…]`、以及**无遮罩**的图片 `[Pic#…]` 只负责显示，**不是可交互元素**，不会触发揭示步骤，从一开始就直接可见（发音可设置为自动播放、引用可点击跳转，但都不占用揭示顺序）。

**每张卡片必须自洽**：卡片是随机抽取、逐张复习的——复习时只看得到当前这一张卡片，看不到原本牌组中的其他卡片。因此每张卡片都必须自带理解和作答所需的全部背景信息。

---

## 三、元素语法速查

### 1. 答案线（题目 / 答案）

题目和答案用单独一行的 `---` 分隔：

```
共同进化的定义是什么？
---
不同物种之间、生物与无机环境之间在相互影响中进化发展。
```

复习时先显示题目，点击后揭示 `---` 下方的答案。

### 2. 文字挖空 `[F#分组#文字]`

- 基础写法：`[F##文字]`，被挖掉的文字复习时隐藏，点击揭示。
- 在两个 `#` 之间填**整数**作为分组：点击其中一个挖空时，**同分组的所有挖空一起揭示**。
- 分组在**每张卡片内独立**计算；新建时默认从 `1` 开始编号（虽支持负数，但为了好理解一般用正整数）。

```
光合作用的场所是[F#1#叶绿体]，呼吸作用的主要场所是[F#2#线粒体]，二者都属于[F#1#双层膜]细胞器。
```

上例中"叶绿体"和"双层膜"同属分组 `1`，点击任意一个会同时揭示这两处；"线粒体"属分组 `2`，单独揭示。

**重要：分组数字不代表复习时的揭示顺序。** 复习时永远按挖空在文本中**从上到下的位置顺序**逐个揭示，分组只决定"哪些空一起亮"。分组编号纯粹是为了书写和维护方便，习惯上按出现先后从小到大填，但你完全可以让分组 `2` 排在分组 `1` 前面而不影响揭示顺序。

**挖空内容只支持纯文本**：`[F#…#…]` 里**不能再嵌入任何行内样式（如 `[T#…]`）或公式（`[E##…]`，行内、块级都不行）**，写了也不会生效。需要被挖的若是公式或带样式的内容，改用别的方式处理（例如把公式整体作为答案线 `---` 的答案，而非挖空）。

**挖空的复习外观**：未揭示时挖空处显示为**绿色下划线**（文字隐藏），揭示后显示为**绿色文字＋下划线**。因此排版时**避免对其他文本使用「绿字＋下划线」样式**（如 `[T#U,!36b59d#…]`），否则复习时容易被误认为已揭示的挖空，造成困扰。想强调文字可改用绿色高亮、其他颜色或加粗。

挖空是把课本句子快速转成卡片最高效的方式（见制卡原则第 5 条）。

### 3. 选择题 `[Choice#参数#…]`

`*` 开头是**正确选项**，`-` 开头是**错误选项**：

```
下列哪项是细胞膜的主要成分？
[Choice##
* 磷脂
- 纤维素
- 几丁质
- 淀粉
]
```

参数（写在两个 `#` 之间，逗号分隔）：

- 默认会**随机打乱**选项顺序。
- `fixed`：关闭乱序，按书写顺序显示。
- `multi`：多选（标记多个 `*`）。
- 二者可同时用：`[Choice#fixed,multi#ELEMENTS]`。

```
[Choice#fixed,multi#
* 正确选项
* 正确选项
- 错误选项
- 错误选项
]
```

选项顺序固定有意义（如时间/大小排序）时用 `fixed`；答案不止一个时用 `multi`。

**`ans` 参数（主要给自动化脚本用）**：`ans/字母` 用按书写顺序排列的选项字母（`A`/`B`/`C`…）直接指定答案。**提供 `ans` 时以它为准，会覆盖选项里的 `*` 标记**（此时选项一般全写成 `-`）。多选连写多个字母，如 `ans/ABC`。

```
下午茶是什么？
[Choice#ans/A#
- 墨墨记忆卡 CEO
- 应急食品
- 宠物而已
- 一种传统活动
]
```

由于默认会随机打乱选项顺序，所以**手写卡片时一般不用 `ans`**，仍用 `*`/`-` 标记；`ans` 是为批量生成脚本提供的便捷写法。

### 4. 行内样式 `[T#参数#文字]`（字形 / 颜色 / 高亮 / 链接）

`T#` 是统一的**行内**样式标签，参数写在两个 `#` 之间，可用逗号任意叠加：

- `B`：加粗，如 `[T#B#加粗]`
- `U`：下划线，如 `[T#U#下划线]`
- `I`：倾斜，如 `[T#I#倾斜]`
- `D`：删除线，如 `[T#D#删除线]`
- `up`：上标，如 `[T#up#上标]`
- `down`：下标，如 `[T#down#下标]`
- `!十六进制`：字体颜色（单 `!`）
- `!!十六进制`：高亮背景色（双 `!!`）
- `link/"网址"`：网页链接，网址用英文双引号包住，如 `[T#link/"https://example.com"#链接文本]`，点击文字可打开链接

单 `!` 是字体颜色，双 `!!` 是高亮，别混淆。以上开关可任意组合，例如绿字＋浅绿高亮 `[T#!36b59d,!!c5f1c0#重点]`，再加粗就是 `[T#B,!36b59d,!!c5f1c0#重点]`；又如加粗下划线 `[T#B,U#关键术语]`。

**优先使用这 7 种系统内置色**（颜色值直接写 6 位十六进制；字体用左列深色，高亮用右列浅色）：

| 颜色 | 字体色（`!`） | 高亮色（`!!`） |
|------|--------------|----------------|
| 红 | d16056 | fbc0bc |
| 橙 | dc7705 | fedcb6 |
| 黄 | eb9e27 | fff895 |
| 绿 | 36b59d | c5f1c0 |
| 蓝 | 275bd1 | cfdeff |
| 紫 | 5c2fa6 | dbc9fb |
| 灰 | 90959b | e5e6ea |

写法示例：`[T#!d16056#红字]`、`[T#!!fff895#黄底]`。

**两条关键限制（务必遵守）：**

1. **行内样式里不能包含挖空** `[F#…#…]`（段落样式 `[P#…]` 则可以）。若要给一段带样式的文本挖空，把挖空**前后**的文本各自拆成独立的 `[T#…]`，挖空夹在中间。例如想让整句染绿、但只挖"叶绿体"：

   ```
   [T#!36b59d#光合作用的场所是][F##叶绿体][T#!36b59d#，需要光照]
   ```

2. **行内样式不能自嵌套**——一个 `[T#…]` 里不能再套另一个 `[T#…]`。若想在已有样式的局部再叠加样式，拆成**三个**独立的 `[T#…]`：前段、要叠加样式的中段、后段，中段把所有样式一次写全。例如整句绿字，其中"叶绿体"再加粗：

   ```
   [T#!36b59d#光合作用的场所是][T#B,!36b59d#叶绿体][T#!36b59d#，需要光照]
   ```

   中段 `[T#B,!36b59d#…]` 把"加粗＋绿字"一次写全，而不是嵌套。

### 5. 段落样式 `[P#参数#整行内容]`（块级，必须整行使用）

`P#` 是**块级**段落标签，**必须独占一整行**，不能嵌在句子中间。参数可逗号组合：

- `H1`：标题
- `center`：居中
- `L`：无序列表的一项（每个 `[P#L#…]` 渲染成一个项目符号）

```
[P#H1#本章标题]
[P#center#居中的一句话]
[P#L#无序列表第一项]
[P#L#无序列表第二项]
```

**系统不内置有序列表语法**，需手动写序号。墨墨主题色是绿色 `#36b59d`，因此**优先用绿色作为序号文字的颜色**：

```
[T#!36b59d#1.] 有序列表第一项
[T#!36b59d#2.] 有序列表第二项
```

**嵌套规则**：段落标签 `[P#…]` 里可以再放行内标签 `[T#…]`，也可以放挖空 `[F#…]`；但行内标签之间不能互嵌，行内标签里也不能放挖空（见上一节的两条限制）。例如：

```
[P#H1,center,L#前缀[T#B,!36b59d,!!c5f1c0#重点片段]后缀]
```

表示一个"标题＋居中＋列表项"的段落，其中"重点片段"被加粗、染绿字、加浅绿高亮，前后为普通文本。

### 6. 公式 `[E##公式]`（KaTeX，非 LaTeX）

```
[E##(\sin x)'=\cos x]
```

公式用 **KaTeX** 渲染（不是完整的 LaTeX），只能使用 KaTeX 支持的函数与符号，支持范围见 <https://katex.org/docs/supported.html>。数学/物理/化学的公式、希腊字母、上下标等用它，避免用纯文本拼凑导致歧义；不确定某个命令是否可用时，以该支持列表为准。

**公式分块级和行内两种用法，语法相同**：

- **块级公式**：`[E##…]` 单独成行、行首无缩进时渲染为整行的块级公式。
- **行内公式**：写在句子中间时随文字流式排版，例如：

  ```
  这是一条 [E##1+1=2] 行内公式
  ```

行内公式适合短小、随句阅读的式子；**占用空间较大的公式（分段函数、矩阵、多行推导等）仍建议用块级公式**，方便在手机上阅读。

### 7. 发音 `[Audio#参数#显示文本]`（行内）

```
[Audio#ID/3636,A#我爱北京天安门]
```

- `ID/` 后接发音文件的 id（需先通过墨墨 API 上传音频取得）。
- 两个 `#` 之间是参数（逗号分隔），右侧 `#…]` 是卡面上显示的文本。
- `A`：**遇到即自动播放**——复习到该卡时碰到此元素会立即发音；不加 `A` 则需点击显示文本才播放。
- 发音的显示文本**内部和外部都不能嵌套行内样式 `[T#…]`、挖空 `[F#…]` 或公式 `[E##…]`**。

**批量导入暂不支持直接插入音频**（与图片同理）。音频必须先通过墨墨的 API 单独上传拿到发音 id 后，才能在文本里用 `[Audio#ID/…#]` 引用。若材料依赖发音（单词、古诗朗读等），告知用户音频需先走 API 上传取得 id，批量导入文本里留下占位符，提示用户在这里插入发音。

### 8. 引用 `[Card#参数#显示文本]`（行内）

```
[Card#ID/7e01-7e02-7e01#查拉图斯特拉如是说]
```

- `ID/` 后接被引用卡片的 id；一个引用可**挂载多张卡片**，多个 id 之间用减号 `-` 连接（上例挂了三张）。
- 右侧 `#…]` 是显示文本，点击可跳转到被引用的卡片。
- 同发音一样，引用的显示文本**内部和外部都不能嵌套行内样式、挖空或公式**。

**批量导入暂不支持直接生成卡片链接**（与图片、音频同理）。被引用卡片的 id 需先**实际创建出那张卡片**才能取得，无法在导入文本里凭空写出。若需要卡片间互链，告知用户先建好目标卡片拿到 id，再在批量导入文本里用 `[Card#ID/…#]` 引用，否则留占位符提示用户后续补全。

### 9. 图片 `[Pic#参数#]`（块级）

图片需先通过墨墨的 **API 单独上传**拿到图片 id 后，在批量导入文本里用 `[Pic#…#]` 引用（不能直接把图片文件写进文本）：

```
[Pic#ID/3636,MID/2828#]
```

- `ID/` 后接图片 id。
- `MID/`（可选）后接图片**遮罩**文件的 id，用于遮挡图片的部分内容。
- 右侧 `#]` 一般留空。
- 一行可并排多张图片：`[Pic#ID/3636#][Pic#ID/3637#]`。

### 块级元素说明

**块级元素（选择题 `[Choice#…#…]`、段落 `[P#…]`、图片 `[Pic#…#]`）必须独占一行，且行首不能有任何缩进（空格 / 制表符）**：一旦前面有缩进，墨墨就不会把它识别为块级元素，**不会渲染**，会原样当作纯文本显示。写这些元素时务必让标记顶格；**行内公式则不受此限**，可直接写在句子中间。**唯一例外是多张图片**：多张 `[Pic#…#]` 允许并排写在同一行（如 `[Pic#ID/3636#][Pic#ID/3637#]`）。

**遮罩说明**：一张图片的遮罩可遮挡多个区域、点击分别显示；但在揭示机制里，整张图的遮罩算**一整个**可交互元素（见 §二）。若用默认的"点击任意处揭示"，会一次性揭示**所有**遮罩区域，因此复习时通常**手动逐个点击图片上的遮罩**来揭示。

**批量导入暂不支持直接插入图片**。图片必须通过墨墨的 API 单独上传拿到图片 id 后引用。若材料强依赖图片（解剖、地理、几何等），告知用户图片与遮罩需先走 API 上传取得 id，批量导入文本里留下占位符，提示用户在这里插入图片。

---

## 四、制卡质量原则（核心，决定卡片好不好用）

把材料切成卡片时，**不要简单地照抄"大段问→大段答"**。要遵循一套经实践检验的制卡原则，让卡片简短、好记、抗干扰。完整版见 `references/制卡20条原则.md`，**首次为用户做卡片、或材料较复杂时务必先通读它**。这里给出最常用的几条要点：

- **先理解再记**：不理解的材料不要做成卡片硬背；先建立整体框架，再拆成独立问答。
- **最小信息原则（最重要）**：一次复习只考一个最小知识点，问题短、答案更短。把一段复杂描述拆成多张极简卡片，而不是一张大卡。
- **多用挖空**：用 `[F##…]` 把课本原句直接转成卡，是最快且效果好的方式。
- **避免集合与枚举**：不要让一张卡要求"列出全部 X 项"。拆成多个带语义提示的小问，或用重叠式挖空逐段记忆（古诗文尤其适用）。
- **抗干扰**：相似内容容易混淆，措辞要清晰，必要时加上下文提示/标签消除歧义。
- **优化措辞**：删掉与答案无关的冗词，让大脑更快"点亮"目标。
- **善用例子与联想**：把内容和已知事物、个人经历、生动场景挂钩，显著缩短记忆时间。
- **标注来源与时效**：易变信息（统计数据、版本）加时间戳；但时间戳本身一般不作为要背的内容。

**参考文档示例的写法 → 墨墨语法**（`references/制卡20条原则.md` 里的例子用"问/答"和省略号占位表述，转成墨墨时照此映射）：

| 参考文档中的写法 | 墨墨写法 |
|------------------|----------|
| 用省略号 `[...]` 标记的单个挖空 | `[F##文字]` |
| 多处需要一起揭示的挖空 | 同分组 `[F#1#A]…[F#1#B]` |
| 问 / 答 两段 | 题目 + `---` + 答案 |

> 注意：墨墨的挖空只用 `[F#分组#文字]` 这一种写法。不要写成其他记忆软件的挖空格式，墨墨不识别，会原样显示。

---

## 五、完整示例

把下面这段课本内容转成墨墨卡片：

> 罗伯特森用电子显微镜观察到细胞膜暗-亮-暗的三层结构，提出细胞膜"蛋白质-脂质-蛋白质"三层结构模型。

**坏做法**（一张大卡，违背最小信息原则）：

```
###细胞膜
罗伯特森的主要贡献是什么？
---
用电子显微镜观察到细胞膜暗-亮-暗的三层结构，提出蛋白质-脂质-蛋白质三层结构模型。
```

**好做法**（拆成多张挖空卡，问短答更短）：

```
###细胞膜
[F##罗伯特森]用电子显微镜观察到细胞膜暗-亮-暗的三层结构，提出蛋白质-脂质-蛋白质三层结构。
===
罗伯特森用[F##电子显微镜]观察到细胞膜暗-亮-暗的三层结构，提出蛋白质-脂质-蛋白质三层结构。
===
罗伯特森用电子显微镜观察到细胞膜[F##暗-亮-暗]的三层结构，提出蛋白质-脂质-蛋白质三层结构。
===
罗伯特森用电子显微镜观察到细胞膜暗-亮-暗的三层结构，提出细胞膜[F##蛋白质-脂质-蛋白质]三层结构。
```

**古诗文（重叠式挖空，避免整段枚举）**：

```
###醉翁亭记
环滁皆山也。[F#1#其西南诸峰，林壑尤美，望之蔚然而深秀者，琅琊也。]
===
[F#1#环滁皆山也。]其西南诸峰，林壑尤美，望之蔚然而深秀者，琅琊也。
```

---

## 六、交付前自检清单

生成卡片文本后，逐项核对：

1. **牌组单一**：整段只对应一个牌组。
2. **分隔正确**：每两张卡之间有且仅有一行 `===`；`###` 只用于章节名。
3. **标签闭合**：每个 `[F#…#…]` / `[Choice#…#…]` / `[T#…#…]` / `[P#…#…]` / `[E##…]` / `[Audio#…#…]` / `[Card#…#…]` / `[Pic#…#]` 都正确闭合，方括号成对（含嵌套时的内外两层）。
4. **选择题**：用 `*` 标记答案时至少一个 `*`（多选才有多个 `*`）；提供 `ans/字母` 时以 `ans` 为准、会覆盖 `*`（一般选项全写 `-`）；需要固定顺序加 `fixed`。`ans` 一般只在自动化脚本里用。
5. **最小信息**：没有"列出全部 N 项"式的大卡；长答案已拆分或改成挖空。
6. **每张卡片自洽**：复习时随机抽取、只看得到当前这一张，看不到原先牌组中的其他卡片；确保作答所需的背景信息（前提、限定条件、所属主题）都已写进卡片本身，没有依赖前后卡片或材料顺序。
7. **挖空纯文本且不在行内样式内**：`[F#…#…]` 内没有嵌 `[T#…]`/`[E##…]`；挖空也没有被写进 `[T#…]` 里（需要时拆成"前段 T ＋ 挖空 ＋ 后段 T"）。
8. **嵌套合法**：只有段落 `[P#…]` 能包住行内 `[T#…]` 或挖空 `[F#…]`；行内 `[T#…]` 之间没有互相嵌套（叠加样式时拆成三段、中段写全样式）。
9. **块级元素顶格独占整行**：`[Choice#…#…]`、`[P#…#…]`、`[Pic#…#]` 都单独成行、行首无缩进（有缩进会被当纯文本不渲染），没有写在句子中间；唯一例外是多张图片 `[Pic#…#]` 可并排在同一行。
10. **有序列表序号染色**：手动序号优先用绿色 `[T#!36b59d#1.]`。
11. **颜色取值**：尽量用 7 种内置色；单 `!`（字体）与双 `!!`（高亮）没搞反；没有对普通文字使用「绿字＋下划线」（会与未揭示挖空的绿色下划线外观混淆）。
12. **图片走引用**：图片只用 `[Pic#ID/…#]` 引用已上传的 id；带遮罩的图片记得它在揭示里算一个可交互元素，并已提醒用户图片/遮罩需走 API 上传。
13. **公式用 `[E##…]`**而非纯文本拼凑。
14. **发音 / 引用不嵌套**：`[Audio#…]`、`[Card#…]` 的显示文本内外都没有套行内样式、挖空或公式；引用多卡时 id 用 `-` 连接。
15. **音频 / 卡片链接走引用**：和图片一样，批量导入不能直接生成音频或卡片链接——音频 id 需先走 API 上传、卡片 id 需先实际建卡取得；文本里只能用 `[Audio#ID/…#]` / `[Card#ID/…#]` 引用已有 id，否则留占位符提醒用户。

确认无误后，把成品放进一个代码块或 `.txt` 文件交付，并简要说明分了几章、共多少张卡。
