markji-cards · diff

git:20260811.37a3463 to git:20260811.822652e

46 added, 70 removed. Audit A to A.

---
name: markji-cards
- description: 把学习材料(课本、笔记、错题、单词、古诗文、知识点等)整理成「墨墨记忆卡」批量导入所需的标记语法。只要用户提到墨墨记忆卡、墨墨卡片、制作记忆卡片/抽认卡/闪卡、批量导入卡片、把某段内容做成卡片背诵,或给出一段材料要求"做成卡片/挖空/出题/转成墨墨格式",都要使用本 skill。即使用户没有点名"墨墨",只要目标是产出可直接粘贴导入墨墨的卡片文本,也应使用。本 skill 同时内置了制卡的质量原则,确保生成的卡片简短、好记、抗干扰。
+ description: 墨墨记忆卡(Markji)卡片文本的标记语法与排版样式说明。涵盖答案线、挖空、选择题、行内/段落样式、KaTeX 公式、发音、卡片引用、图片遮罩等标签的写法与限制,并附制卡质量原则。当用户询问墨墨卡片语法、标记写法、排版样式,或需要按规范撰写、检查墨墨卡片文本时使用。本技能只提供文本语法依据,上传素材、创建/导入卡片等实际操作需搭配墨墨 API、浏览器或其他相应技能完成。
metadata: {"author":"tianfangyetan1"}
---
- # 墨墨记忆卡 · 批量导入与制卡
-
- 「墨墨记忆卡」是一款使用间隔重复(SRS)的卡片记忆软件。本 skill 用于把材料转换成它的**批量导入文本格式**,并按良好制卡原则组织内容。
-
- 输出物始终是一段**纯文本**,用户复制后即可在墨墨中批量导入。除非用户另有要求,直接把成品放进一个代码块或 `.txt` 文件,便于整段复制。
-
- ---
-
- ## 一、批量导入的整体格式
-
- 批量导入时遵循三条硬规则:
-
- 1. **一次导入只能进入一个牌组**。不要在同一段文本里混入属于不同牌组的内容。
- 2. `###` 开头的行是**章节名**,用于在牌组内分章。
- 3. `===` 单独成行,是**两张卡片之间的分隔线**。
-
- ```
- ###章节名
- 卡片1的全部内容
- ===
- 卡片2的全部内容
- ===
- 卡片3的全部内容
- ```
+ # 墨墨记忆卡 · 卡片文本语法与样式说明
- 一张卡片内部可以有多行(题目、`---`、答案、挖空、选择题等),只要不出现 `===` 就都算同一张卡。章节名之后、下一个 `###` 之前的所有卡片都归入该章节。
+ 「墨墨记忆卡」是一款使用间隔重复(SRS)的卡片记忆软件,卡片内容用「纯文本 + 标记标签」书写。本文档是这套卡片文本的**标记语法与排版样式规范**:说明每种标签的写法、限制与排版建议,并附制卡质量原则。
- > `###` 和 `===` 是**批量导入时的默认标识符**。导入界面可手动改成其他标识符,但一般不需要,沿用默认即可。
+ > **搭配使用**:本文档只解决「卡片文本怎么写」,本身不完成任何实际操作。涉及具体动作时需搭配其他 agent 工具/技能——图片、音频、遮罩的上传与取 id 需调用墨墨 API 类工具;卡片的实际创建、导入、牌组管理需借助墨墨 API、浏览器自动化或其他相应技能。本文仅提供这些操作中文本部分的语法依据(如 `[Pic#ID/…#]`、`[Audio#ID/…#]`、`[Card#ID/…#]` 的写法与占位符约定)。
---
- ## 二、复习时的呈现机制(决定排版顺序,务必理解)
+ ## 一、复习时的呈现机制(决定排版顺序,务必理解)
复习一张卡片时,用户**点击任意位置**逐步揭示答案。系统从上到下,每次揭示**下一个可交互元素**的答案。可交互元素有四类,各算一个:
- 一个挖空 `[F#…#…]`
- 一个选择题 `[Choice#…#…]`
- 一条答案线 `---` 下方的答案
- - 一张带遮罩的图片 `[Pic#…,MID/…#]`(整张图的遮罩算**一个**,见 §9)
+ - 一张带遮罩的图片 `[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,批量导入文本里留下占位符,提示用户在这里插入发音。
+ **音频须先通过墨墨的 API 单独上传**拿到发音 id 后,才能在文本里用 `[Audio#ID/…#]` 引用(与图片同理,不能把音频文件直接写进文本)。若材料依赖发音(单词、古诗朗读等),先在文本里留下占位符,待通过 API 上传取得 id 后再补全。
### 8. 引用 `[Card#参数#显示文本]`(行内)
```
[Card#ID/7e01-7e02-7e01#查拉图斯特拉如是说]
```
- `ID/` 后接被引用卡片的 id;一个引用可**挂载多张卡片**,多个 id 之间用减号 `-` 连接(上例挂了三张)。
- 右侧 `#…]` 是显示文本,点击可跳转到被引用的卡片。
- 同发音一样,引用的显示文本**内部和外部都不能嵌套行内样式、挖空或公式**。
- **批量导入暂不支持直接生成卡片链接**(与图片、音频同理)。被引用卡片的 id 需先**实际创建出那张卡片**才能取得,无法在导入文本里凭空写出。若需要卡片间互链,告知用户先建好目标卡片拿到 id,再在批量导入文本里用 `[Card#ID/…#]` 引用,否则留占位符提示用户后续补全。
+ **被引用卡片的 id 需先实际创建出那张卡片才能取得**,无法在文本里凭空写出(与图片、音频同理)。若需要卡片间互链,先建好目标卡片拿到 id,再用 `[Card#ID/…#]` 引用;否则先留占位符,待卡片创建后补全。
- ### 9. 图片 `[Pic#参数#]`(块级)
+ ### 9. 图片 `[Pic#参数#说明文本]`(块级)
- 图片需先通过墨墨的 **API 单独上传**拿到图片 id 后,在批量导入文本里用 `[Pic#…#]` 引用(不能直接把图片文件写进文本):
+ 图片需先通过墨墨的 **API 单独上传**拿到图片 id 后,才能在文本里用 `[Pic#…#]` 引用(不能直接把图片文件写进文本):
```
[Pic#ID/3636,MID/2828#]
```
- `ID/` 后接图片 id。
- `MID/`(可选)后接图片**遮罩**文件的 id,用于遮挡图片的部分内容。
- - 右侧 `#]` 一般留空。
+ - 右侧 `#…]` 可填写一句简短的图片文字描述(类似 HTML `<img>` 的 `alt` 属性),如 `[Pic#ID/3636#细胞膜结构示意图]`;不需要时留空。
- 一行可并排多张图片:`[Pic#ID/3636#][Pic#ID/3637#]`。
- ### 块级元素说明
-
- **块级元素(选择题 `[Choice#…#…]`、段落 `[P#…]`、图片 `[Pic#…#]`)必须独占一行,且行首不能有任何缩进(空格 / 制表符)**:一旦前面有缩进,墨墨就不会把它识别为块级元素,**不会渲染**,会原样当作纯文本显示。写这些元素时务必让标记顶格;**行内公式则不受此限**,可直接写在句子中间。**唯一例外是多张图片**:多张 `[Pic#…#]` 允许并排写在同一行(如 `[Pic#ID/3636#][Pic#ID/3637#]`)。
+ **遮罩说明**:一张图片的遮罩可遮挡多个区域、点击分别显示;但在揭示机制里,整张图的遮罩算**一整个**可交互元素(见 §一)。若用默认的"点击任意处揭示",会一次性揭示**所有**遮罩区域,因此复习时通常**手动逐个点击图片上的遮罩**来揭示。
- **遮罩说明**:一张图片的遮罩可遮挡多个区域、点击分别显示;但在揭示机制里,整张图的遮罩算**一整个**可交互元素(见 §二)。若用默认的"点击任意处揭示",会一次性揭示**所有**遮罩区域,因此复习时通常**手动逐个点击图片上的遮罩**来揭示。
+ ### 其他说明
- **批量导入暂不支持直接插入图片**。图片必须通过墨墨的 API 单独上传拿到图片 id 后引用。若材料强依赖图片(解剖、地理、几何等),告知用户图片与遮罩需先走 API 上传取得 id,批量导入文本里留下占位符,提示用户在这里插入图片。
+ **块级元素(选择题 `[Choice#…#…]`、段落 `[P#…]`、图片 `[Pic#…#]`)必须独占一行,且行首不能有任何缩进(空格 / 制表符)**:一旦前面有缩进,墨墨就不会把它识别为块级元素,**不会渲染**,会原样当作纯文本显示。写这些元素时务必让标记顶格;**行内公式则不受此限**,可直接写在句子中间。**唯一例外是多张图片**:多张 `[Pic#…#]` 允许并排写在同一行(如 `[Pic#ID/3636#][Pic#ID/3637#]`)。
---
- ## 四、制卡质量原则(核心,决定卡片好不好用)
+ ## 三、制卡质量原则(核心,决定卡片好不好用)
把材料切成卡片时,**不要简单地照抄"大段问→大段答"**。要遵循一套经实践检验的制卡原则,让卡片简短、好记、抗干扰。完整版见 `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` 文件交付,并简要说明分了几章、共多少张卡。
+ 1. **标签闭合**:每个 `[F#…#…]` / `[Choice#…#…]` / `[T#…#…]` / `[P#…#…]` / `[E##…]` / `[Audio#…#…]` / `[Card#…#…]` / `[Pic#…#]` 都正确闭合,方括号成对(含嵌套时的内外两层)。
+ 2. **选择题**:用 `*` 标记答案时至少一个 `*`(多选才有多个 `*`);提供 `ans/字母` 时以 `ans` 为准、会覆盖 `*`(一般选项全写 `-`);需要固定顺序加 `fixed`。`ans` 一般只在自动化脚本里用。
+ 3. **最小信息**:没有"列出全部 N 项"式的大卡;长答案已拆分或改成挖空。
+ 4. **每张卡片自洽**:复习时随机抽取、只看得到当前这一张,看不到原先牌组中的其他卡片;确保作答所需的背景信息(前提、限定条件、所属主题)都已写进卡片本身,没有依赖前后卡片或材料顺序。
+ 5. **挖空纯文本且不在行内样式内**:`[F#…#…]` 内没有嵌 `[T#…]`/`[E##…]`;挖空也没有被写进 `[T#…]` 里(需要时拆成"前段 T + 挖空 + 后段 T")。
+ 6. **嵌套合法**:只有段落 `[P#…]` 能包住行内 `[T#…]` 或挖空 `[F#…]`;行内 `[T#…]` 之间没有互相嵌套(叠加样式时拆成三段、中段写全样式)。
+ 7. **块级元素顶格独占整行**:`[Choice#…#…]`、`[P#…#…]`、`[Pic#…#]` 都单独成行、行首无缩进(有缩进会被当纯文本不渲染),没有写在句子中间;唯一例外是多张图片 `[Pic#…#]` 可并排在同一行。
+ 8. **有序列表序号染色**:手动序号优先用绿色 `[T#!36b59d#1.]`。
+ 9. **颜色取值**:尽量用 7 种内置色;单 `!`(字体)与双 `!!`(高亮)没搞反;没有对普通文字使用「绿字+下划线」(会与未揭示挖空的绿色下划线外观混淆)。
+ 10. **图片走引用**:图片只用 `[Pic#ID/…#]` 引用已上传的 id,不能直接插入文件;带遮罩的图片记得它在揭示里算一个可交互元素,图片与遮罩都需走 API 上传取得 id。
+ 11. **公式用 `[E##…]`**而非纯文本拼凑。
+ 12. **发音 / 引用不嵌套**:`[Audio#…]`、`[Card#…]` 的显示文本内外都没有套行内样式、挖空或公式;引用多卡时 id 用 `-` 连接。
+ 13. **音频 / 卡片链接走引用**:和图片一样,音频与卡片链接不能直接写进文本——音频 id 需先走 API 上传、卡片 id 需先实际建卡取得;文本里只能用 `[Audio#ID/…#]` / `[Card#ID/…#]` 引用已有 id,否则留占位符提醒后续补全。