Anki 2.1.xアドオン作成に最低限必要なファイルは2つである。
__init__.pymanifest.json
この2ファイルをZIP圧縮すればアドオンができる。zipコマンドを使い、myaddon.ankiaddonというアドオンファイルを作るには下記のようにする。
$ zip myaddon.ankiaddon __init__.py manifest.json
Writing Anki Add-onsに従ってzip -r ../myaddon.ankiaddon *を実行すると、*を使っているので、カレントディレクトリにある不要なファイルもアドオンファイルに入ることになる。そのため、zip -r ../myaddon.ankiaddon *はおすすめしない。
以降では、__init__.pyとmanifest.jsonそれぞれについて簡単に説明する。
__init__.py
AnkiはGUIライブラリとしてPyQt5を使っているので、GUIについてはPyQt5のドキュメントを読む。PyQt5のドキュメントに不足している部分は、適宜Qt5のドキュメントも参照する。
Anki特有の処理についてはWriting Anki Add-onsを参照する。また、Ankiのソースコード、特にpylib/anki配下を読む。
また、anki-addonsのdemoディレクトリにあるアドオンのコードも参考になる。
manifest.json
Ankiへのpull requestやqt/aqt/addon.pyを参照しながら、manifest.jsonにJSONデータを書く。
Anki 2.1.38時点では、package(フォルダ名)とname(ユーザに表示される名前)の2つがmanifest.jsonに必須である。必須ではないものとしては、下記がある。
- mod
- conflicts
- min_point_version
- max_point_version
- branch_index
- human_version