Anki自带的填空题模板无法输入答案,显示也极为简陋。通过对Anki自带的填空题模板进行改造,做出了下面的填空题模板。这个模板有两个字段——题面和章节。前者保存题目及正确答案,后者保存与本题相关的知识在教材中的章节。题面可以用类似{{c1::正确答案}}的形式在文本中挖空,例如:
按建筑物的用途通常可以将建筑物分为{{c1::民用建筑}}、{{c1::工业建筑}}和农业建筑。
上面的代码在一句话中挖出两个空,正确答案分别是“民用建筑”和“工业建筑”。
正面外观:
背面外观(回答完全正确时):
背面外观(回答不完全正确时):
正面内容模板:
{{cloze:题面}}<a>【所属章节:{{章节}}】</a>
<p>
<a>说明:</a>请在下方输入答案,多个空的答案用英文状态的逗号加空格分隔。</p>
<!--下面的代码添加输入栏-->
{{type:cloze:题面}}
背面内容模板:
{{cloze:题面}}<br>
<hr>
<div class='prompt'>👉答案对比<p>
<a>说明:</a>没有另外显示正确答案时表示你的答案完全正确。</p>
</div>
<!--下面的代码添加答案比对-->
{{FrontSide:type:题面}}
样式:
@import url("_editor_button_styles.css");
.card {
font-family: Aa奶糖油画体;arial;
font-size: 20px;
text-align: left;
color: black;
background-color: white;
}
.cloze {font-weight: bold;color: blue}
.prompt{color:#00f;font-size:1.2em;font-family:Aa虎头虎脑;arial;}
p{text-indent:2em;color:#f0f}
a{color:red;}
code#typeans{
color:#00f;
font-size:1.2em;
font-family:Aa奶糖油画体;arial;
font-weight:bold;
}
/*拼写错误时的文字样式*/
/*没有拼写出来的文字样式*/
.typeBad, .typeMissed{
background-color:#ff0;
color:red;
font-weight:bold;
}
code#typeans::before {
content:"你的答案:";
color:#33c;
}
/*隐藏anki生成的箭头,该箭头包含在一个id为typearrow的span中*/
#typearrow{
display:none;
}
/*跳过向下箭头元素及其后面的br元素,添加提示。当然我们可以利用
JavaScript查出那个元素的标签名是span*/
#typearrow + br + *::before{
content:"正确答案:";
color:#33c;
-webkit-text-stroke:0em;
}
Enjoy it.
附带记录一个知识:某些字体的中文破折号,中间是断开的,如下图:
这主要是这个字体文件中名为“emdash”的字符(中文破折号就是由两个emdash组合起来的)左右有空白的原因。用字体编辑软件(如Fontcreator)将左右的空白改为负数,导出字体文件,删除系统中原有的字体文件再重新安装新导出的字体文件,这个断开就消失了。如下图: