起因

高三的上半学期过去一半了。在应试学习中要记忆的东西比较多,比如说英语单词。在纸质的笔记本上记单词也没什么不方便的,只是回顾时有点麻烦,只能靠做记号的方式标出自己不熟的词汇,这样的方式多少有点传统。于是乎又想着造这样的一个轮子来辅助我记忆:

上网查查有没有功能类似的应用,而且得是开源的。本来以为要求有点苛刻,没想到还真的有。这便是 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 开源。

测试 Anki 桌面端 截图

界面非常简洁简陋。要使用自托管的服务器的话,得更改一下配置。最简单的方法是进入工具 > 插件 > 获取插件,输入代码“358444159”,进入新安装的插件,即可看到自定义服务端的字段。

然后点击同步,便会提示登录,用刚才创建的用户即可。

Android

可以在 F-Droid 上获取 AnkiDroid,这同样是开源的。

AnkiDroid 截图

同样地,可以配置自托管服务器。进入设置 > 高级设置 > 自定义同步服务器,略有不同地是有两个同步地址需要配置。“同步地址”和桌面端一样,至于“媒体文件同步地址”就是在原本的“同步地址”的路径后加一个子路径“msync”,比如说“https://anki.example.com”对应的就是“https://anki.example.com/msync”。

然后与桌面端的操作一样,在同步时使用刚才创建的用户登录即可。

结言

这是我第一次接触这款软件,因此也只能写到如何配置,没有更加深入的体会了。以后再考虑写使用心得,如果它对我有帮助的话。