← 返回目录


Anki模版制作:请问如何使用js语言(Javascript)调用field数据?

在Anki制作2.9万张卡片,复习33万次。Anki高考践行者、推广者。

18 👍 / 0 💬

问题描述

我想根据field的具体输入用js语言做条件判断,但document.getElementById()只能得到html页面中尖括号之间的内容,例如只能得到"{{Front}}",但不能知道每个卡片的{{Front}}里具体输了什么。

我主要想实现的是,如果Front挖了空,就在模版中使用{{cloze:Front}},否则就使用{{Front}}。亦即同一个变量可以即作cloze,又做Basic。如果已经有合适的插件或模版,也可以推荐给我。感谢!

常用平台macOS, iOS,目前版本:2.1.39。


在 Anki 中,Cloze 是一个特殊的模板,它的实现是涉及 Anki 底层代码(python)的,而不是靠 js 实现的。所以没有办法实现通过识别字段里是否有 {{c1::}} 来改变模板类型。

替代的实现方式是基于 Basic 来增加 Cloze 的功能,比较典型的模板代表是:

专栏文章
新版的“知识点-Basic”可以兼做Basic和Cloze了,更新如下:
原来的Basic
功能不变;
制作卡片时可能会提示没有挖空,忽略即可(或在卡片代码编辑框将正背面最后一行的{{cloze:问题}}删除)。
新的Cloze(原JS代码由飞沙提供,只做样式上的修改)
可以像Cloze类型模板一样制作卡片时挖空;
可以依次点击显示多个挖空内容;
悬浮按钮控制挖空内容隐藏显示。

不过这个模板用了以前的'⁨{{=<% %>=}}⁩'特性,所以需要自行修复。


← 返回目录