首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >定制完形卡片类型-在一个卡片类型中有两张卡片

定制完形卡片类型-在一个卡片类型中有两张卡片
EN

Stack Overflow用户
提问于 2016-10-30 20:51:50
回答 1查看 2.4K关注 0票数 1

我有两个卡在我的卡片类型,这是我创建的填空删除类型,通过复制它。

如果我的卡的位置是1,比文档中描述的那样,{{cloze:MyDataField}}工作,我喜欢。但如果卡的位置为2,则填空删除扩展部分似乎被禁用。

在第二位置的卡片上,我只需要显示句子,没有{{c1::word1}},.,{{cN::wordN}}标签,但是用这些词包装。

是否有一种方法可以使用我的卡片类型模板中的一个封闭类型创建两张卡片?或者,是否有一种方法可以获得我的字段的纯文本,以便我可以使用JavaScript解析它?或者,我可以以某种方式显示字段的内容,忽略{{c1表达式,但显示内容吗?

EN

回答 1

Stack Overflow用户

发布于 2017-10-08 13:17:57

如果您熟悉Python2,就可以编写一个Anki外接程序来实现这一点。安装了这个插件的桌面Anki编译的卡片可以在AnkiWeb上工作,而不会显示胡言乱语。这是一个(未经测试的!)加载项应该注册一个特殊的fmod,允许您编写{{uncloze:fieldname}}以获得纯文本、无标记、{{cn::}}标记。

代码语言:javascript
运行
复制
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来安装它。

这段代码大部分来自this answer

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40333508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档