卡片生成

原 文:Card Generation - Anki Manual (ankiweb.net)

反向卡片

你可以在 YouTube 上观看有关反向卡片的视频

如果你想创建双向的卡片(例如,「ookii」→「big」和「big」→「ookii」),你有几种选择。最简单的方法是选 择内置的「问答题(同时生成翻转的卡片)」笔记模板。这将生成两张卡片,每个方向一张。

如果你只想为部分材料生成反向卡片(可能你只想花时间学习最重要材料的反向,或者有些卡片反向后不合理), 你可以选择「问答题(同时生成翻转的卡片<可选>)」笔记模板。当你只填写前两个字段时,这种笔记模板只生成 正向卡片;如果你在「增加翻转的卡片」字段中输入内容(如 'y'),Anki 也会生成一张反向卡片。此字段的内 容不会在卡片上显示。

卡片的生成与删除

Anki 不会创建正面空白的卡片。因此,如果「我的字段」为空,并且某张卡的正面模板仅包含该字段,则不会创 建该卡片。

当你编辑先前添加的笔记时,Anki 会自动创建新的卡片,如果这些卡片以前是空白的但现在不再是空白的。然 而,如果你的编辑使一些卡片变为空白状态,Anki 不会立即删除它们,因为这可能导致数据意外丢失。要删除空 卡片,请在主窗口中转到「工具→清理空卡片…」。你将会看到一份空卡片的列表,并有选项删除它们。

由于卡片生成的方式,你无法手动删除单张卡片,因为它们会在笔记下次编辑时被重新创建。相反,你应该使相关 的条件替换字段为空,然后使用空卡片选项。

Anki 在卡片生成时不考虑特殊字段或非字段文本。因此,如果你的正面模板如下所示,当 Country 为空时,不会 生成卡片:

{{Country}} 在地图上的哪里?

选择性卡片生成

有时你可能只想为部分材料生成额外的卡片,比如测试你回忆一组中最重要词汇的能力。你可以通过在笔记中添加 一个额外字段,并在你希望生成额外卡片的笔记中填入一些文本(如 "1")来实现此目的。然后在卡片模板中,你 可以设定卡片的创建取决于该字段是否非空。有关更多信息,请参阅下面的条件替换部分。

条件替换

你可以仅在字段为空或不为空时在卡片上包含某些文本、字段或 HTML。示例:

文本总是显示。

{{#FieldName}}
    当 FieldName 有文本时,只有这个文本显示
{{/FieldName}}

{{^FieldName}}
    当 FieldName 为空时,只有这个文本显示
{{/FieldName}}

现实生活中的一个例子是只有在字段不为空时显示标签:

{{#Tags}}
    标签:{{Tags}}
{{/Tags}}

或者假设你希望在卡片的正面以蓝色显示特定字段,如果背面有额外的笔记(可能有笔记表明你应该花更多时间思 考答案)。你可以按如下方式样式化字段:

{{#Notes}}
    <span style="color:blue;">
{{/Notes}}

{{FieldToFormat}}

{{#Notes}}
    </span>
{{/Notes}}

你也可以使用条件替换来控制生成哪些卡片。这是因为 Anki 不会生成正面为空的卡片。例如,考虑一张正面有两 个字段的卡片:

{{Expression}}
{{Notes}}

通常,如果表达式或笔记字段中有文本,则会生成卡片。如果你只想在表达式不为空时生成卡片,那么你可以将模 板更改为:

{{#Expression}}
    {{Expression}}
    {{Notes}}
{{/Expression}}

如果你想要求两个字段都不为空,则可以使用两个条件替换:

{{#Expression}}
    {{#Notes}}
        {{Expression}}
        {{Notes}}
    {{/Notes}}
{{/Expression}}

请记住,这仅在你将条件替换代码放在卡片的正面时有效;如果你这样做在背面,你只会得到背面为空的卡片。同 样,因为这通过检查正面字段是否为空来工作,确保用条件替换包住「整个」正面是很重要的;例如,以下内容无 法按预期工作:

{{#Expression}}
    {{Expression}}
{{/Expression}}
{{Notes}}

空白背面

卡片生成只查看卡片的正面。例如,如果你有一个正面模板:

{{Field 1}}

和一个背面模板:

{{Field 2}}

那么如果 Field 1 非空,就会生成一张卡片。如果 Field 2 为空,这张卡片依然会被生成,而你将得到一个空白 的背面。

如果你希望避免一个空白的背面,你需要在正面模板上作为条件放置一个必需字段,像这样:

{{#Field 2}}
    {{Field 1}}
{{/Field 2}}

这将确保只有当 Field 2 和 Field 1 都非空时生成卡片。

旧版本 Anki 的限制

以下限制不适用于 Anki 2.1.28+ 和 AnkiMobile 2.0.64+。

旧版本的 Anki 不能使用否定条件用于卡片生成。例如,在 Anki 2.1.28 上,以下内容将在名为 AddIfEmpty 的 字段为空和 Front 非空时添加一张卡片:

{{^AddIfEmpty}}
    {{Front}}
{{/AddIfEmpty}}

在更早的 Anki 版本中,否定条件会被忽略,卡片生成将仅依赖于 Front 是否非空。

在旧版本中混合使用 ANDOR 条件也可能导致问题。例如,以下内容(“如果 A B C非 空则添加卡片”)是可以的:

{{A}}
    {{B}}
{{C}}

以下内容(“如果 A B C 非空则添加卡片”)也是可以的:

{{#A}}
    {{#B}}
        {{#C}}
            {{A}}
        {{/C}}
    {{/B}}
{{/A}}

但是以下内容(“如果 A (B C) 非空则添加卡片”)将无法正常工作:

{{A}}
{{#B}}
    {{#C}}
        {{B}}
    {{/C}}
{/B}}

添加空笔记

当你在 Anki 2.1.28+ 和 AnkiMobile 2.0.64+ 中添加新笔记时,如果卡片模板和笔记字段的组合不会生成任何卡 片,将使用第一个模板创建一个空卡片。这允许你即使内容不完整也可以添加材料,并稍后通过修改材料或模板使 其变为有效。如果你不想保留空笔记,可以使用空卡片功能将其删除。

在旧版本的 Anki 中,如果没有卡片会被生成,Anki 会拒绝添加或导入笔记。

填空题模板

请参阅填空题部分以获取相关信息。

填空题笔记模板的功能与常规笔记模板不同。它没有可自定义的卡片模板数量,而是所有填空题共享一个模板。

如上面卡片生成部分所述,常规卡片的生成取决于一个或多个问题字段是否非空。填空题笔记模板的生成方式不 同:

  • Anki 在正面模板中查找一个或多个填空替换,如 {{cloze:FieldName}}。

  • 然后在 FieldName 字段中查找所有填空引用,如 {{c1::text}}。

  • 对于每个不同的编号,将生成一张卡片。

由于填空题卡片的生成方式不同,{{cloze:...}} 标签不能用于常规笔记模板——只有当用在填空题笔记模板中时, 它们才能正常工作。

条件生成提供了一个特殊字段,以便你检测所呈现的卡片。例如,如果你想在第一个挖空上显示「hint1」字段, 并在第二个挖空上显示「hint2」字段,你可以使用以下模板:

{{cloze:Text}}

{{#c1}}
    {{Hint1}}
{{/c1}}

{{#c2}}
    {{Hint2}}
{{/c2}}