我的 Anki 模版功能介绍
为了功能和美观,我自制了 Anki 模版,这是它的功能介绍与使用指引
首次配置
功能介绍与使用指引
模版会高亮记忆要点
制卡时,请务必对记忆要点使用手动下划线或 PopupSelectionText 字段标记重点,以践行 Anki 制卡时的最小信息原则。
当你进行了正确的高亮操作以后,可以看到卡片里被你标记的部分具有彩色下划线和背景,并且文字会轻微放大以便于阅读。(图1)
当你点击「Load All Dictionaries」按钮后,带有用户标记的辞典块还会有整体的外发光并置顶,以便从其他没有辞典块的辞典中凸显出来。(图2)
如果被标记的辞典篇幅较长,那么为了在首屏就可以一眼看到辞典块中的用户标记,我的模版会对偏长的辞典块进行自动折叠,并且将辞典块的滚动条自动定位到用户标记处。(图3)
如果被标记的辞典篇幅较长,且用户在同一辞典块内进行了距离较远的两次标记,那么折叠块会上下分割为多块,并分别显示对应的标记。这也是为了在首屏进行标记全加载,减少在复习时的手动翻页。(图4)
![]()
用户标记的方式1:手动下划线
在 Anki 的笔记编辑页面,选择你要标记的内容,然后点击下划线按钮。
为了操作上的便利,推荐使用快捷键 ctrl U 或者 command U 替代下划线按钮。
![]()
用户标记的方式2:PopupSelectionText
基本用法
手动下划线的方式增加了制卡时的摩擦,而且对辞典本身进行了编辑,不符合我的理念。因此,更推荐的方式是借助 PopupSelectionText 字段进行半自动的下划线。
PopupSelectionText 的工作原理是,Yomitan 在制卡时可以检测用户用鼠标选中的辞典内容,然后将其发送到 Anki 的指定字段。我的模版会从辞典里检索命中和 PopupSelectionText 完全一致的首个辞典内容,然后实现下划线的相同效果。
在 Yomitan 的设置里配置好制卡到 Anki 时的字段映射以后(如果你使用了我的最新配置,那么无需手动配置),在点击 Yomitan 的制卡按钮前选中你想要标记的文本,就可以将你选中的文本发送到 Anki。
![]()
注意事项
Yomitan 并不是真的知道你选择的内容的位置,它发送到 Anki 的只有你选中的文本内容,而没有文本的位置信息。所以你发送到 Anki 的 PopupSelectionText 内容可能匹配到内容相同但是位置不同的内容。
为了避免这种情况,可以多选取一些前后的文本内容和标点来增加目标的上下文特点。在运作时,我的模版会在划线时自动忽视在首尾的部分标点(/、。、空格、;、.、,、. ),所以不必担心多选标点导致的卡片美观度下降。
或者,你也可以使用我设计的高级语法来增加匹配时的规则,来实现正确的匹配。
PopupSelectionText 所支持的高级语法
换行以匹配多目标
在 PopupSelectionText 字段内进行换行,就可以以换行处为分界点,分别独立匹配每行的内容。
例如,自サ変<br>盘旋 会分别匹配 自サ変 和 盘旋。
![]()
修改匹配排序
默认会匹配命中的第一处,可以通过 --x 的语法来匹配第 x 处。
例如,小学校 --2 会匹配辞典内第二处为 精神 的内容。
全部匹配
默认会匹配命中的第一处,可以通过 --all 的语法来匹配辞典里所有相同的内容。
例如,小学校 --all 会匹配辞典内所有为 小学校 的内容。
指定匹配辞典
可以通过 --field:辞典字段名 语法来匹配辞典里所有相同的内容。
例如,共有 --field:Bilingual_OALDPE10 会匹配 Anki 字段名为 Bilingual_OALDPE10 的辞典中的首处为 共有 的文本。
DashedText
DashedText 是另一个用于标记辞典重点的字段,它会和 PopupSelectionText 一样寻找文本并加上高亮效果,但它不会带有文字放大效果,在排列辞典时,仅带有 DashedText 的辞典位于带有下划线的辞典的后面。
这是因为它的用途和 PopupSelectionText 不同。在我的设计初衷里,PopupSelectionText 适合在制卡时由用户手动选择关键内容。DashedText 则适合写入由工具判断出来的释义,我自制的 AI 释义匹配插件会读取当前卡片的词汇、例句和辞典内容,尝试从辞典中选出和当前语境匹配的释义,然后把结果写入 DashedText。
辞典分离
相比主流模版将所有辞典塞入一个 Glossary 字段里,我的模版对所有辞典进行分离,每个辞典分别占用一个字段。
这样的好处是可以对辞典实现高更高度的定制,例如瀑布流排列辞典块、自定义辞典的排列顺序、更方便地使用插件回填字段内容。
在进行制卡时,如果 Yomitan 启用了大量的辞典,可能会导致卡顿。所以,可以根据自己的需求减少开启的辞典数量,优先关闭那些自己不需要的、文件量大的辞典。
辞典块加载机制
首次加载辞典块的机制
我的模版默认开启「减少背面辞典块数量」功能,也就是用户设置中的 --setting-reduce-dictionary-count: 1;。
开启后,卡片背面不会一上来显示所有辞典,而是优先只显示带有标记的辞典块,这是模版在默认设置下的行为:
- 当存在用户标记(手动下划线或
PopupSelectionText)时,仅展示带有用户标记的辞典块 - 如果没有任何用户标记,但带有
DashedText标记,那么展示DashedText命中的辞典块 - 如果一张卡片没有任何标记,那么兜底显示一个最高优先级的辞典
我设计「减少背面辞典块数量」功能的原因有两个:
- 在低性能设备上,减少背面辞典块数量可以显著提高加载速度
- 减少背面辞典块数量后,卡片背面是对称、简洁、美观的
如果你想临时查看所有辞典,可以点击卡片背面的「Load All Dictionaries」按钮(快捷键 `)。加载所有辞典后,带有用户标记的辞典块仍然会被凸显出来,以便和其他辞典区分。
如果你更喜欢每次都直接加载所有辞典,可以在用户设置里把 --setting-reduce-dictionary-count 改为 0。
全部加载辞典块的机制
加载辞典块时,辞典会分为三类:存在用户标记的辞典、仅被 DashedText 命中的辞典、没有任何标记的辞典,并按照这三类先后排序。
在同一类型内,排序的先后取决于设定的辞典顺序。
调整辞典顺序
这是一项高级功能,需要调整模版的代码。
有时,用户希望的模版内默认辞典排序和我预设的不同(随着外语水平的提高,初级辞典需要被移到后面,或者用户产生了其他辞典偏好的改变),此时,用户可以选择修改模版中的辞典排序。修改方法如下:
- 在 Anki 「浏览」窗口内,选择任意一张使用了我的模版的卡片
- 点击右上方的「卡片」按钮
- 点击「背面内容模版」按钮
- 在搜索框内输入
辞典数据,并搜索 - 找到自己希望调整的辞典,编辑
data-priority="xx"中的xx,模版将会按照data-priority的值从小到大排列
![]()
深色模式
我的模版适配了浅色和深色外观,会跟随系统状态改变。
在深色模式下,图片的亮度会被略微降低。
响应式设计
我的模版适配手机、平板、电脑三种主要尺寸,对它们存在不同的设计策略。
例如,模版会根据设备的屏幕类型排列辞典,手机 1 列,平板 2 列,电脑 2-3 列,以更高效地利用显示空间。你可以自行决定在电脑上显示为 2 列或 3 列,详见用户设置。
汉字查询
这是一项日语模版专属的功能。我受到 jp-mining-note 的启发,学习了这个功能。
复习日语卡片时,模版支持从当前牌组里对含有相同汉字的卡片进行查询,用来深化对汉字的理解。我还用它跳转到物书堂查询对应汉字,来了解汉字的其他音读和训读。
这个功能需要依赖 Anki 插件 AnkiConnect,因此只能在 Windows 和 macOS 上使用。
如果你不需要这个功能,可以在用户设置里把 --setting-disable-kanji-query 改为 1 来关闭。
笔记功能
MyNotes
在复习时,我经常需要给卡片写一些笔记。所以我的模版提供了 MyNotes 字段,用于记录和当前卡片相关的个人笔记。
我会把自己的笔记写进 MyNotes。例如:
- 对词源的补充说明
- 我自己容易混淆的相似表达
- 容易联想到的词汇错误含义
- 容易联想到的词汇错误读音
- 记忆词汇的技巧
- 日语词汇中某汉字的所有音读或训读
- 相同汉字,日语和中文的含义差异
对于 MyNotes 字段,同样可以使用下划线来表示高亮强调。
MyNotesSmallSize
MyNotesSmallSize 的功能和 MyNotes 完全相同,区别仅在于,它会以更小的文字在卡片背面显示。
如何使用取决于你自己的喜好,我个人会在里面填入由 LLM 生成的内容,它们的字数容易偏多,也可能存在错误。
快速编辑
利用插件快速编辑
在 Anki 的默认状态下,只能使用 Anki 编辑器编辑笔记的内容,这造成了编辑字段内容时的麻烦。
目前,我通过插件 Edit Field During Review (Cloze) 来让字段内容可以在复习时被编辑。
我的模版基于这个插件进行了设计,可以直接编辑大量的字段(如 MyNotes、SentenceBold、辞典块们)。这样一来,在复习时就可以方便地修改卡片了。
进行编辑后,Anki 的卡片会重载,也会导致动画的重新播放。如果模版动画让你心烦,可以在用户设置里关闭模版动画。
快速编辑区域
除了上面提到的可见的字段,我对另外的一些不可见的字段也存在快速编辑的需求。
因此,我在卡片背面的底部设计了一块快速编辑区域,用于快速编辑一些常用的文本。另外,它可以更方便地让我知道当前的卡片状态。
| 字段 | 用途 |
|---|---|
IsWordCard | 切换为词汇卡 |
IsAudioCard | 切换为音频卡 |
IsKanaCard | 切换为假名卡 |
Hint | 给卡片正面增加消歧义提示 |
PopupSelectionText | 调整需要高亮的辞典重点 |
DashedText | 调整低调虚线标记的释义文本 |
如果你完全不需要显示快速编辑区域,可以在用户设置里关闭快速编辑区域的显示。
转化为词汇卡
在默认情况下,卡片正面会显示词汇和例句。
在正面同时显示词汇和例句并非一直是最优方案,有时用户只是对例句产生了记忆联想,而不理解词汇,也就是说例句导致了记忆干扰;卡片正面的例句还会增加阅读卡片正面所需的时间。
我个人的倾向是,当词汇是单释义词汇时,此时不需要例句来消歧义,那么只在正面展示词汇,而不展示例句是更好的。
通过在字段 IsWordCard 输入任何内容(推荐输入 1),卡片将转变为不在正面显示例句的词汇卡。词汇卡是一个我经常使用的功能。
![]()
转化为音频卡
类似词汇卡,通过在字段 IsAudioCard 输入任何内容(推荐输入 1),卡片将转变为不在正面显示词汇的音频卡。例句和例句音频会在卡片正面展示。
![]()
转化为假名卡
这是一项日语模版专属的功能。
类似词汇卡,通过在字段 IsKanaCard 输入任何内容(推荐输入 1),卡片将转化为假名卡——Expression 会被替换显示为 ExpressionReading。
使用 Yomitan 查词时,那些经常以假名书写的词汇,可能被制卡为汉字的形式。这个功能是作用是将那些无需掌握的汉字形式的词汇以假名形式显示。
在判断要不要使用假名形式时,我的习惯是观察辞典里的写法是汉字还是假名,以及观察 Frequencies 字段中汉字和假名的频率哪个更高。
![]()
增加提示
当仅凭例句无法消歧义时,就会存在不知道自己需要回忆的释义是那条的问题。这时,可以在 Hint 字段里填写对自己的提示文本。
Hint 字段的内容会仅显示在卡片正面,例如这里「終盤」可能为「本义 - 围棋和象棋等接近胜负的阶段」或「引申义 - 尾声」,在 Hint 内填入 引申义 后,可以实现消歧义。
![]()
类似地,例如对于例句 I'm sorry, but this isn't a garage.,仅凭例句无法确定 garage 的含义,这时我会在 Hint 内填入 店铺类型,这样就可以确定需要回忆的是 (兼营汽车销售、修理及加油的)汽车修理厂。
除了释义上的歧义,我还有其他的在 Hint 里填入内容的情况。例如日语里的某些词汇可以被音读或者训读,那么我会在 Hint 里填入 音 或 训 来将卡片变为对其中一种读音的考察。
自动换行转空格
在制卡时,可能因为字幕质量而产生多余的换行,这会导致卡片显得臃肿。
为了解决这个问题,我的模版会自动将例句和译文内的换行转化为全角空格。如果你不喜欢这个功能,可以在用户设置处关闭这个功能。
自动主题色
在日语模版的默认情况下,卡片的主题色会由音调决定。
模版会读取字段 PitchAccentPositions 的数据,并启用对应的颜色。音调 1 2 3 4 5 分别对应 红 橙 黄 绿 蓝,0 对应 粉,其他情况 对应 紫。据说颜色可以辅助记忆,所以我就做了这个功能;但实际使用后我对它的效果存疑,不过做都做了,那就这样了。
在英语模版的默认情况下,卡片的主题色会由词频决定。
模版会读取 FrequencyHarmonicRank 的数据,然后进行这样的主题色判断逻辑:1-4999 红;5000-9999 橙;10000-14999 黄;15000-19999 绿;20000-24999 蓝;25000-29999 紫;30000-9999999 或为空时粉。
你可以在用户设置里修改确定主题色的模式。
重设读音音调
这是一项日语模版专属的功能。
在默认情况下,模版在显示日语的 Pitch Accents 时,会使用「Accents → 根据PitchAccentPositions和ExpressionReading生成 → ExpressionReading」的 fallback 策略,因此,对于那些没有 Accents 数据的卡片,可以通过在字段 PitchAccentPositions 手动输入音调的方式来设置音调。
如果有需要,你可以修改用户设置中的 fallback 策略,让 PitchAccentPositions 可以覆盖非空的 Accents 并显示。
模糊图像
通过给卡片添加 NSFW 标签(不区分大小写,也可以写为 nsfw),卡片背面的图像会带有模糊。放大后的图像仍然维持原样。
![]()
快捷键控制
你可以用模版内置的快捷键来控制模版的行为,例如:
| 快捷键 | 行为 |
|---|---|
` | 等效于点击「Load All Dictionaries」按钮 |
Q | 放大或缩小图片 |
0 | 显示或隐藏详细频率(Frequencies) |
对于这些快捷键,支持在用户设置处进行自定义。
用户设置
我的模版提供了一些可以编辑的用户设置,通过修改它们,可以变更模版的行为。修改方法如下:
- 在 Anki 「浏览」窗口内,选择任意一张使用了我的模版的卡片
- 点击右上方的「卡片」按钮
- 点击「样式」按钮
目前,日语模版的自定义内容如下(英语模版会略微缺少几个功能):
/* ========== 用户自定义设置(1 = 开启 / 肯定问题 ,0 = 关闭 / 否定问题) ========== */
:root {
/* ========== 全局控制 ========== */
/* 是否关闭动态效果? */
--setting-disable-motion-effects: 0;
/* 是否减弱视觉效果?(开启后关闭模糊、阴影、渐变) */
--setting-reduce-visual-effects: 0;
/* 是否根据词频切换主题色¹ ?开启后按 FrequencyHarmonicRank 区间使用现有配色 */
--setting-theme-color-by-frequency: 0;
/* ========== 卡片顶部 ========== */
/* 背面词条名滚出屏幕后,是否在左上角显示固定词条名?此项对 iOS 无效 */
--setting-floating-expression: 1;
/* 是否关闭电脑端 汉字查询功能² ? */
--setting-disable-kanji-query: 0;
/* 是否开启电脑端汉字查询窗口右上角的跳转 物书堂³ 查询汉字按钮?仅推荐购买了物书堂汉字辞典的 macOS 用户开启 */
--setting-mkd-kanji-button: 1;
/* 是否将 SentenceTranslation 字段中的<br>换行自动替换为全角空格? */
--setting-sentence-trans-newline-to-fullwidth-space: 1;
/* 是否将例句中的<br>换行自动替换为全角空格? */
--setting-sentence-newline-to-fullwidth-space: 1;
/* 是否优先根据日语的 PitchAccentPositions 和 ExpressionReading 重新生成背面 Accents?关闭时仅在 Accents 为空时兜底生成 */
--setting-regenerate-pitch-accents: 0;
/* ========== 辞典正文 ========== */
/* 是否减少背面辞典块数量?开启后仅显示所有带下划线辞典;如果都没有下划线,则兜底显示 1 个最高优先级的非下划线辞典。开启此项可以在低性能设备上显著改善表现 */
--setting-reduce-dictionary-count: 1;
/* 是否强制平板端辞典单列显示?开启后,在 769px - 1200px 屏宽下辞典块按单列排列 */
--setting-dict-force-single-column-tablet: 0;
/* 是否强制电脑端辞典单列显示?开启后,在 1201px 及以上屏宽下辞典块按单列排列 */
--setting-dict-force-single-column-desktop: 0;
/* 是否限制「桌面端」辞典列数「最多」为 2 列?(如果为 0,在桌面端最多为 3 列) */
--setting-dict-limit-desktop-two-columns: 0;
/* 是否让「即便没有下划线」的辞典也在高度超过阈值后自动折叠? */
--setting-dict-collapse-without-underline: 0;
/* ========== 卡片底部 ========== */
/* 背面底部快捷编辑字段⁴ :是否在「电脑端」显示? */
--setting-back-quick-edit-desktop: 1;
/* 背面底部快捷编辑字段:是否在「移动端」显示? */
--setting-back-quick-edit-mobile: 1;
/* 背面底部模板信息,是否显示? */
--setting-back-template-footer: 1;
/* ========== 快捷键设置 ========== */
/* 推荐使用 Q/W/P/G/H/J/K/L/Z/X/C/N/8/9/0;避免使用其他字母和数字,会与 Anki 冲突 */
/* 可使用键位代码表示特殊键位,如 Backquote(表示反引号 ` 键)、F12 */
/* 背面开启「减少背面辞典块数量」时的「加载所有辞典」按钮 */
--setting-dict-load-all-hotkey: Backquote;
/* 大图弹窗开关 */
--setting-image-modal-hotkey: Q;
/* 右上角详细频率弹窗开关 */
--setting-frequency-popover-hotkey: 0;
}
/*
注释:
¹ 词频主题色判断逻辑:1-4999 红;5000-9999 橙;10000-14999 黄;15000-19999 绿;20000-24999 蓝;25000-29999 紫;30000-9999999 或为空时粉。
² 需安装 Anki 插件「Anki Connect」,由于 Anki 移动端无法安装插件,所以只能在电脑端使用。
³ 物书堂 是截止目前最好用的日语辞典app,截止目前只提供 iOS / macOS 版本。我本人使用跳转汉字辞典的功能查询汉字的所有音读和训读。
⁴ 需配合 Anki 插件「Edit Field During Review Cloze」使用,安装插件以后,在复习时按住 control 或者 command 就可以编辑字段。
*/
好看
好看就是最大的价值!可以大幅改善使用 Anki 时的情绪。
常用字段速查
| 字段 | 作用 |
|---|---|
Expression | 词条本体,以最大的字号在卡片里显示 |
ExpressionFuriganaPlain | 带有简易注音标记的词条,例如 付[つ]ける。目前未被模版使用 |
ExpressionReading | 词条读音;设置为日语假名卡后,卡片显示时会用它替换 Expression |
Accents | 词条的读法。对于日语卡片,Accents 显示优先级默认高于自动生成结果,[[#^ca99d0|为空时存在 fallback 策略]] |
WordAudio | 词条发音音频 |
Image | 卡片右上角处的图片,语境之一(在我的流程里由 asbplayer 生成) |
SentenceBold | 例句;Yomitan 会用 <b> 标记制卡时的词条(在我的流程里,由 asbplayer 补全) |
SentenceFuriganaPlain | 带有注音标记的例句,我使用额外插件而非 Yomitan 生成 |
SentenceTranslation | 例句的中文翻译(在我的流程里由 asbplayer 生成) |
SentenceAudio | 例句音频(在我的流程里由 asbplayer 生成) |
MyNotes | 手动填写,显示在背面的个人笔记 |
MyNotesSmallSize | 手动填写,字号较小的个人笔记,适合补充较长但不需要突出的内容 |
Hint | 手动填写,显示在卡片正面的消歧义提示 |
Bilingual_xxxx | 双语辞典 |
Monolingual_xxxx | 单语辞典 |
Grammer_xxxx | 日语模版的语法辞典 |
Frequencies | 详细词频信息 |
FrequencyHarmonicRank | 综合词频排名;英语模版默认用它判断主题色 |
Url | 来源链接,由 asbplayer 或 Yomitan 写入 |
DocumentTitle | 来源标题,例如视频文件名(在我的流程里由 asbplayer 生成) |
PitchAccentPositions | 日语音调位置,可用于生成或覆盖显示的 Accents |
PitchAccentCategories | 日语音调类别,例如平板型、头高型等分类信息。目前未被模版使用 |
IsKanaCard | 日语模版特有,填入任意内容后转化为假名卡 |
IsWordCard | 填入任意内容后转化为词汇卡 |
IsAudioCard | 填入任意内容后转化为音频卡 |
PopupSelectionText | 从辞典里匹配并高亮的重点文本。由 Yomitan 生成,也可以手动编辑 |
DashedText | 用虚线低调标记辞典释义 |
Glossary | 作为最后一个辞典块显示 |
更新模版
获取更新
你可以从我的网站的发布页获取更新信息(暂时还没做) #todo ,也可以通过我的 Telegram 频道「阿健的外语沉浸资源」获取更新信息。
注意事项
在更新模版以后,你对模版的所有自定义设置会被重置(它们属于模版的一部分),所以如果它们对你来说重要,请你做好相关的文本备份。
在更新模版前,推荐事前在 Anki 新建备份,以免发生意外造成数据丢失。
普通更新(无字段变动)
将 apkg 文件导入 Anki 就可以实现更新。
导入时,具体步骤为:勾选「更新笔记模版」,并将下方的选项设置为「始终」,最后点击「导入」。
![]()
特殊更新(带有字段变动)
当模版更新带有字段变动时,这种模版更新需要重新调整卡片,并且会触发时间较久的单向同步,具体步骤如下:
- 如普通更新,导入新模版
- 在 Anki 浏览窗口内全选旧卡
- 右键,选择「笔记」→「更新笔记模版」
- 确认字段的迁移
- 点击「上传到 AnkiWeb」,完成单向同步
- 进入 Yomotian 设置,在左侧选中「Anki」,再在右侧选中「Configure Anki flashcards…」
- 将 Model 修改为更新的模版名称
- 验证字段映射和我提供的字段映射一致
![]()