インポート (Importing)

Last-modified: 2016-12-23 (金) 08:43:56

原文 = http://ankisrs.net/docs/dev/manual.html#importing


目次



Anki でインポートできるファイルは、エクスポート機能により作成された Anki単語帳パッケージ、Mnemosyne 2.0 の .db ファイル、そして SuperMemo の .xml ファイルです。ファイルをインポートするには、メニューのFile->Import をクリックしてください。

テキストファイルのインポート

プレーンテキスト ファイルであり、コンマ・セミコロン・タブ のいずれかによってフィールドが区切られたものなら、Anki にインポートできます。ただしいくつかの条件を満たす必要があります。

  • ファイルはプレーンテキスト (myfile.txt) でないといけません。他の形式、たとえば myfile.xls, myfile.rtf, myfile.doc などは、まずプレーンテキストとして保存する必要があります。
  • 文字コードは UTF-8 にしてください (後述)。
  • Ankiは、最初の (コメントではない)行を見て、フィールドの個数を決めます。それ以降の行で、フィールドの個数が合っていない行があったら、すべて無視されます。
  • 最初の行は 区切り文字 も決めます --- 最初の行に ; (セミコロン) があれば Anki はそれを使います --- もし コンマがあれば それを使います、といったぐあいです。

テキストファイルのフィールドはノート中のいずれかのフィールド(タグを含む)に割り当てられます。インポート時には、テキストファイル中のフィールドがノート中のフィールドのどのフィールドに対応するのかを選択します。

テキストファイルをインポートする際には、カードを入れる単語帳を選択することができます。1以上のテンプレートについて単語帳の上書きオプションを有効にしている場合、カードは選択した単語帳ではなくその単語帳に入る点に注意してください。

以下は有効なファイルの例です:

foo bar; bar baz; baz quux
apple; banana; grape

フィールドの中に 改行 を入れる方法は 2つあります。

複数行をエスケープする by placing the contents of the field in quotation marks

hello; "this is
a two line answer"
two; this is a one line one

HTML形式の改行を使う

hello; this is<br>a two line answer
two; this is a one line one

HTML形式の改行を使うには、インポートダイアログの "allow HTML in fields" チェックボックスを有効にする必要があります。

NOTE

複数行のエスケープは、複数ラインにわたる穴埋め問題を使用している場合には正しく動作しません。代わりに、HTML形式の改行を使用してください。

タグを別のフィールドに含め、インポートダイアログでそのフィールドをタグフィールドとして選択することができます:

first field; second field; tags

下の例は、1行目が無視 (#) されますが、有効なファイルです:

# this is a comment and is ignored
foo bar; bar baz; baz quux
field1; field2; field3

表計算シートとUTF-8

ファイル中にラテン文字以外が含まれている場合(アクセント付きアルファベットや日本語など)、Anki はファイルが UTF-8 エンコード で保存されていることを期待します。これを行う最も簡単な方法は、Excelの代わりにフリーの表計算ソフトの LibreOffice を用いてファイルを編集することです。LibreOffice は UTF-8 に簡単に対応でき、更には Excel とは異なり複数行のコンテンツも正しくエクスポートすることができます。もし Excel を使い続けたい場合、このフォーラムの投稿(英語)を参照してください。

LibreOffice で Anki が対応するファイル形式に表計算シートを保存するには、ファイル>名前を付けて保存 (File>Save As) を選び、ファイルタイプとして "テキストCSV" を選択してください。デフォルトオプションを許可するとファイルが保存され、このファイルを Anki にインポートすることができます。

HTML

Anki はテキストファイルからインポートしたテキストを HTML (ウェブページに使われる言語) として扱います。これにより、テキストの太字、斜体や他の書式の設定されたテキストもテキストファイルにエクスポートでき、再度インポートすることができます。HTML の書式を含めたい場合は、インポート時に "allow HTML in fields" チェックボックスにチェックを入れてください。角カッコ(<, >)や他のHTML構文を含んだコンテンツをインポートしようとする場合は、このチェックボックスを外すのがよいでしょう。

HTML の文字書式を使いつつ、角カッコも含んだファイルをインポートしたい場合は、角カッコを次のように表記してください:

  • < ⇒ &lt;
  • > ⇒ &gt;

メディアのインポート

もし テキストファイルのインポート時に 音声や画像を含めたければ、ファイルを collection.mediaフォルダ にコピーしてください。メディアフォルダー内にサブディレクトリを入れないでください。一部の機能が動作しなくなります。

ファイルをコピーしたら、テキストファイルの中の ひとつのフィールドを 以下のように書き換えてください。

<img src="myimage.jpg">

または

[sound:myaudio.mp3]

すべてのフィールドを同時に更新するには、他の方法として、検索 & 置換 の機能を使うこともできます。たとえばそれぞれのフィールドが "myaudio" といったテキストを含んでおり、これを音楽が再生されるように変更したければ、正規表現 (regular expressions) オプションを有効にして (.*) を検索し、これを "[sound:\1.mp3]" で置き換えてください。

NOTE

これらの参照付きのテキストファイルをインポートする場合、必ず "Allow HTML" オプションを有効にしてください。

これと同じことをテンプレートを用いて、次のように行おうと考えるかもしれません:

<img src="{{field name}}">

Ankiではこれを次の2つの理由によりサポートしていません:使用するメディアの検索はそれぞれのカードが描画されなければならないことから負荷が高く、またこのような機能は公開された単語帳の利用者にとってはわかりにくいからです。よって代わりに検索 & 置換 の機能を使ってください。

バルクメディアのインポート

大量のメディアを一度にインポートするときの他の方法は、メディアインポートのアドオン を使うことです。このアドオンは選択したフォルダの全てのファイルについて、表面がファイル名(拡張子抜き:"apple.jpg"→"apple")で裏面がイメージや音声となったノートを自動的に生成します。メディアやファイル名の配置を異なるものにしたい場合、一度ノートの作成後に ノートタイプの変更 をすることができます。

タグの追加

インポートする全ての行に tag1tag2 を追加したいなら、テキストファイルの最初に以下を追加してください:

tags:tag1 tag2

重複と更新

テキストファイルのインポート時、Ankiはノートが同一であるか否かの決定に最初のフィールドを用います。標準では、インポートするファイルの最初のフィールドがコレクション中のノートのフィールドと一致し、そのノートがインポートしようとしているものと同じノートタイプであれば、コレクション中のノートの他のフィールドがインポートするファイルの内容によって更新されます。インポート画面のドロップボックスではこの挙動を変えることができ、重複を完全に無視するか、既存のノートを更新する代わりに新しいノートとしてインポートすることを選択できます。

ノート

重複チェックは現在の単語帳だけでなく、"コレクションの全て" について行われます。カードをインポートしようとしているにも関わらずどのノートも更新されないときには、ノートがコレクションのどこかにすでに存在していないかどうかを確認してください。

インポートしようとしているノートよりも古いバージョンがコレクションに既に存在している場合、インポートダイアログで設定された単語帳に移動されるのではなく、現在の単語帳で置き換えて更新されます。ノートが置き換え更新される場合、ノートに属するカードの学習スケジュール情報はそのまま維持されます。

.apkg ファイルで重複がどのように扱われるのかについては、以下の 単語帳パッケージ を参照してください。