Anki の単語帳データを配布するための手引き。クラスでの教材の配布や AnkiWeb で単語帳を共有する場合の、コンテンツの継続的な更新を意識した Anki 単語帳パッケージ APKG ファイルの作り方を説明します。

はじめに

Anki の単語帳 (Deck) を共有すると、内容をアップデートしたり追加したくなる場合があります。差分ファイルや完全な更新版を作っても、果たしてそれがユーザーの手元にに渡った時に、既存の単語帳に正しく反映されるか、自分の環境でテストしても不安になります。

残念ながら、Anki の正式文書では単語帳の配布に関する情報は提供されていません。そこで Anki のソースコードやリリースノートから学んだ内容を元に、この配布ガイドを作りました。

使用上の注意

このガイドの内容については無責任、無保証です。読者各自の責任においてお使いください。

このコンテンツは、Anki 2.0.28 以降の apkg ファイルの読み書きの動作に基づいて作成しています。 デスクトップ版 Anki で単語帳データを作ることを前提としています。

クラスの教材を配布したい方や、共有単語帳を AnkiWeb 上で不特定多数の方を対象にシェアしたい方を対象としています。

AnkiDroid について

Android 版 AnkiDroid は作成者が異なり機能実装に違いが生じている可能性もあります。必ずしもここで紹介する情報と異なる動作をする場合も考えられます。

単語帳データを書き出す方法

配布に適したフォーマットは apkg

Anki をよく分かっている人が、そうでない人たちにデータを配布する状況を考えると、読み込みにいろいろな指示を出さなくてはいけないテキストファイル形式は不適切です。 ファイルを開けば自動的に読み込みが完了する apkg ファイルが適した形式です。

Anki の書き出し機能

Anki の書き出し機能は、単語帳単位で apkg を書き出す方式とコレクション全体を書き出す collection.apkg の二通りがあります。

書き出し
図 1. 書き出し

ファイル形式を [Anki 単語帳パッケージ (*.apkg)]、対象に [全ての単語帳] を選択するとコレクション全体を書き出し、具体的な単語帳を指定した時には単語帳単位で apkg を書き出します。

コレクション全体の更新は特殊

コレクション全体のデータで更新する場合は、インストール先全体をこのファイルで置き換えるので注意が必要です。 書き出し先のデータを読み込み先に複製することになります。

講習会などで複数の PC に学習データを配布するような時にはこの方法は使えます。

更新ではカードに変更は掛からない

ノートの更新ではカードには変更が掛かりません。カードとは学習履歴とノートやレイアウトへの参照です。 つまり、単語帳パッケージでノートに更新を掛けても、ユーザーの学習履歴に変更を掛けません。

継続した更新を意識した配布方法とは

単語帳単位の場合は、インストール先のデータを追加更新します。ただし、そのための条件があります。

それはノートタイプの互換性を図るということです。

更新を意識した単語帳データを配布するなら、ノートタイプの互換性確保が重要

ノートタイプの互換性

ノートタイプ互換性の条件
  1. フィールドの名前と数や順序

  2. カードテンプレートの名前と数や順序

に変化がないことです。

カードテンプレートの内容と互換性

カードテンプレートの内容の書式情報 (スタイルシート) やレイアウト (テンプレート) は変更しても問題ありません。ノートタイプがインストール先に読み込まれれば、既存のノートに対しても反映することが出来ます。

ノートタイプの互換性がある限り、後からその単語帳へのアップデート版を作り続けることが出来ます。 後でノートを追加して再度配布した場合、既に持っている人には追加分がアップデートでき、新たにもらった人は最新版全体を受け取れるようになります。

配布ファイルの管理が簡単

同じ単語帳パッケージファイルで、新規に使う人は全てのデータがインストールでき、更新分だけ必要な人は、更新分だけを読み込むことができます。

互換性が失われると

単語帳作成者がノートタイプを更新してしまうと互換性が失われると、ユーザー側でアップデート版をあてても、新規に追加したノートだけがインストールされ、既存のファイルに更新が掛けられなくなってしまいます。

これは、ユーザー側にも当てはまります。ユーザーがノートタイプの編集をしてしまうと、アップデートを掛けられなくなります。

ノートの更新

  • 更新は、ノートのレコード単位で更新します。更新の掛かったフィールドだけを更新するのではありません。

  • 作成者側の更新と、ユーザー側での変更が競合した場合、更新時間が新しい方が残ります。

ノートタイプの名前

読み込み先に同じノートタイプがあると、更新分のノートタイプは名前の後にハッシュ値を追加します。 この場合全てのノートは、新しいハッシュ値付きのノートタイプ名に統一します。

カードテンプレートの更新

ノートに更新がなくても、ノートタイプに互換性があれば、既存のカードの書式情報やレイアウトだけを更新することができます。

配布の方法

更新した単語帳データの配布方法を紹介しましょう。

AnkiWeb

更新した単語帳を AnkiWeb に同期し、単語帳名を変更せずに再度共有すると、同じ URL が使えます。

共有サーバに配置

ダウンロードファイルを、サーバー上に配置します。akpg ファイルの名前は、前のバージョンから変更しても更新が掛かります。

注意:

ファイル名は自由に決められますが、例外は collection.apkg です。正しく動作しません。

メール添付

メール添付やその他のコミュニケーションアプリのファイル添付機能で配布することもできます。

読み込みかた

最後に作成したファイルをユーザーの機器に読み込む方法を簡単に紹介していきましょう。

Anki PC 版

apkg ファイルを開きます。あるいは Anki の読み込み機能を使います。

AnkiMobile (iOS)

ブラウザーでダウンロードするか、メールに添付して、[Ankiで開く] を選択します。 DropBox アプリでは、[別のアプリで開く] - [Anki にコピー] を選択します。

注意:

AnkiMobile の iTuens ファイル共有の読み込み (import) 機能は、 collection.apkg 専用です。

AnkiDroid (Android)

ブラウザーでダウンロードするか、メールに添付して開きます。または、AnkiDroid の読み込み (インポート) 機能を使います。

RSS 配信を利用する方法

アドオン Feed to Anki を利用すれば、RSS を使ってカード内容を配信できます。

例えば、タイトルがカードの表、本文がカードの裏に相当するブログを立てて、その RSS をこのアドオンを使って受信する使い方ができます。

ユーザーがブラウザを使ってウェブページからダウンロードしたり、ユーザーに APKG ファイルを送付する手間が省略できます。Anki のメニューからコマンドを実行するだけです。 データ作成者は配布用の APKG ファイルの作成や管理の必要がなくなります。

残念ながらスマホからの利用ができないため、配布先が PC だけの条件であれば有効活用できるのではないかと思います。

このアドオンの詳しい内容は、Feed to Anki 毎日英単語のカードを増やせるアドオンをご覧下さい。

まとめ

  • 単語帳データの継続配布に適したフォーマットは APKG

  • 単語帳データの更新を継続するにはノートタイプの互換性の維持が必要

  • 一つのAPKG ファイルで新規インストールも差分インストールも可能

  • 読み込み先に同じノートタイプを使っていると、後から読み込んだノートタイプ名を統一して使う

参考情報

更新情報

2016-04-13: 初出
2016-05-07: RSS 配信について加筆