1

我的卡片类型中有两张卡片,是我根据完形填空删除类型通过复制创建的。

如果我的卡的位置是 1,那么按照文档中的描述,{{cloze:MyDataField}}我喜欢就可以工作。但是如果卡片的位置是两个,完形填空删除扩展似乎被禁用了。

在位置二的卡片上,我只需要显示句子,不带{{c1::word1}}, ....,{{cN::wordN}} 标签,但带有单词,由那些包裹。

有没有办法在我的卡片类型模板中使用关闭类型创建两张卡片?或者有没有办法获取我的字段的纯文本,以便我可以用 JavaScript 解析它?或者我可以以某种方式只显示字段的内容,忽略{{c1表达式,但显示内容?

4

1 回答 1

2

如果您熟悉 Python 2,则可以编写一个 Anki 插件来执行此操作。使用安装了此插件的 Desktop Anki 编译的卡片将在 AnkiWeb 上运行而不会显示乱码。这是一个(未经测试!)附加组件,它应该注册一个特殊fmod的,允许您编写{{uncloze:fieldname}}以获取纯文本 sans{{cn::}}标记。

import re

from anki.hooks import addHook
from anki.template.template import Template

"""Adds support for the unclose Moustache tag.
Blame wizzwizz4 if this does / doesn't work.
Modified to work for <anki_version> by <your_name>."""

open_cloze_regex = re.compile(r"{{c\d+::")

def fmod_uncloze(txt, extra, context, tag, tag_name):
    field_name = tag_name[8:]  # Strip off "uncloze:"
    field_content = Template("{{" + field_name + "}}", context).render()
    return open_cloze_regex.sub("", field_content).replace("}}", "")

addHook("fmod_uncloze", fmod_uncloze)

将它放在 Anki 附加组件目录中的文件中,然后重新启动 Anki 以安装它。

大部分代码来自这个答案

于 2017-10-08T13:17:57.863 回答