起因
高三的上半学期过去一半了。在应试学习中要记忆的东西比较多,比如说英语单词。在纸质的笔记本上记单词也没什么不方便的,只是回顾时有点麻烦,只能靠做记号的方式标出自己不熟的词汇,这样的方式多少有点传统。于是乎又想着造这样的一个轮子来辅助我记忆:
- 每个记忆项包含关键字(标题)、具体内容
- 支持附件上传
- 通过若干标签(树状分类)进行归类与检索
- 支持全文检索
- 仅显示关键字的自我检测,并且通过遗忘曲线之类的机制辅助记忆
上网查查有没有功能类似的应用,而且得是开源的。本来以为要求有点苛刻,没想到还真的有。这便是 Anki - “powerful, intelligent flashcards”。略微了解了一下,功能很强大,上手很简单,客户端与服务端全开源... 总之,非常合我心意。
话不多说,马上部署使用。以下是我的经验。
服务端部署
GitHub 的 Anki 社区 有很多不同版本的服务端供选择。我部署的是 anki-sync-server-rs,因为它使用 Rust 开发,在树莓派这样的 ARM 架构上部署没有问题,而且性能应该不错。
部署 anki-sync-server-rs ,直接下载 GitHub 上的发行版即可。配置文件基本不必修改,除非需要自定义端口、数据保存路径、路由或者 TLS 证书(Anki 使用 HTTP(S) 在客户端与服务端间同步数据)等。
上述操作完成后,新增一个 Anki 用户:
./ankisyncd user --add <username> <password>
然后运行 ./ankisyncd 即可,配置成服务的方式也就类似别的可执行文件。总之非常地轻量化,部署没有什么难度。
客户端配置
这里仅介绍 Windows 与 Android 下的配置。
Windows
下载官方的客户端:https://apps.ankiweb.net/。它的代码在 GitHub 开源。

界面非常简洁简陋。要使用自托管的服务器的话,得更改一下配置。最简单的方法是进入工具 > 插件 > 获取插件,输入代码“358444159”,进入新安装的插件,即可看到自定义服务端的字段。
然后点击同步,便会提示登录,用刚才创建的用户即可。
Android
可以在 F-Droid 上获取 AnkiDroid,这同样是开源的。

同样地,可以配置自托管服务器。进入设置 > 高级设置 > 自定义同步服务器,略有不同地是有两个同步地址需要配置。“同步地址”和桌面端一样,至于“媒体文件同步地址”就是在原本的“同步地址”的路径后加一个子路径“msync”,比如说“https://
然后与桌面端的操作一样,在同步时使用刚才创建的用户登录即可。
结言
这是我第一次接触这款软件,因此也只能写到如何配置,没有更加深入的体会了。以后再考虑写使用心得,如果它对我有帮助的话。