テキストファイル
コンマ、セミコロン、またはタブで区切られたフィールドを含むプレーンテキストファイルは、いくつかの条件が満たされていれば、Ankiにインポートできます。
-
ファイルはプレーンテキスト(myfile.txt)である必要があります。myfile.xls、myfile.rtf、myfile.docなどの他の形式は、最初にプレーンテキストファイルとして保存する必要があります。
-
ファイルはUTF-8形式である必要があります(以下を参照)。
-
Ankiは、最初の(コメントでない)行を見て、ファイル内のフィールド数を決定します。ファイルの後のレコードの一部がより少ないフィールドを含む場合、Ankiは欠落しているフィールドを空白であるかのように扱います。レコードの一部に余分なフィールドが含まれている場合、余分な内容はインポートされません。
-
Ankiは、ファイルが使用するフィールド区切り文字(コンマ、タブなど)を推測しようとします。 間違って推測した場合は、インポートオプションウィンドウで変更して結果をプレビューできます。または、ファイルヘッダーを追加して特定のフィールド区切り文字を強制できます。
テキストファイルのフィールドは、タグフィールドを含むノートの任意のフィールドにマッピングできます。インポート時に、テキストファイルのどのフィールドがノートのどのフィールドに対応するかを選択できます。
テキストファイルをインポートするとき、カードを入れるデッキを選択できます。1つ以上のテンプレートにデッキオーバーライドオプションが設定されている場合、カードは選択したデッキではなくそのデッキに移動することに注意してください。
これは3つのフィールドを持つ有効なファイルの例です:
apple;banana;grape
first field;second field;third field
フィールドに改行またはフィールド区切り文字を含める方法は2つあります。
フィールドの内容を引用符で囲んで文字をエスケープする:
hello;"this is
a two line answer"
two;this is a one line field
"this includes a ; (semicolon)";another field
引用符はフィールドの開始と終了を示すために使用されるため、フィールド内に含めたい場合は、通常の処理から「エスケープ」するために、単一の二重引用符を2つの二重引用符に置き換える必要があります:
field one;"field two with ""escaped quotes"" inside it"
Libreofficeなどのスプレッドシートプログラムを使用してCSVファイルを作成すると、二重引用符のエスケープが自動的に処理されます。
HTML改行を使用する:
hello; this is<br>a two line answer
two; this is a one line one
HTML改行が機能するには、インポートダイアログでフィールドにHTMLを許可をオンにする必要があります。
複数行にまたがるクローズ削除を使用している場合、エスケープされた複数行は正しく機能しません。この場合は、代わりにHTML改行を使用してください。
別のフィールドにタグを含めて、インポートダイアログでタグフィールドとして選択することもできます:
first field;second field;tags
これは、最初の行が無視される(#)有効なファイルの例です:
# 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が読み取れるファイルに保存するには、ファイル > 名前を付けて保存に移動し、ファイルの種類としてCSVを選択します。デフォルトのオプションを受け入れた後、LibreOfficeはファイルを保存し、保存したファイルをAnkiにインポートできます。
HTML
Ankiは、テキストファイルからインポートされたテキストをHTML(ウェブページに使用される言語)として扱うことができます。これは、太字、斜体、その他のフォーマットを持つテキストをテキストファイルにエクスポートして、再度インポートできることを意味します。HTMLフォーマットを含めたい場合は、インポート時に「フィールドにHTMLを許可」チェックボックスをチェックできます。コンテンツに山括弧やその他のHTML構文が含まれているカードをインポートしようとしている場合は、これをオフにすることをお勧めします。
ファイルのフォーマットにHTMLを使用したいが、山括弧やアンパサンドも含めたい場合は、次の置換を使用できます:
文字 | 置換 |
---|---|
< | < |
> | > |
& | & |
メディアのインポート
テキストファイルのインポートから音声と画像を含めたい場合は、ファイルをcollection.mediaフォルダにコピーします。メディアフォルダにサブディレクトリを入れないでください。一部の機能が動作しなくなります。
ファイルをコピーした後、テキストファイルのフィールドの1つを次のように変更します。
<img src="myimage.jpg">
または
[sound:myaudio.mp3]
代わりに、ブラウザ画面の検索と置換機能を使用して、すべてのフィールドを一度に更新できます。各フィールドに「myaudio」のようなテキストが含まれており、音声を再生させたい場合は、(.*)を検索して「[sound:\1.mp3]」に置き換え、正規表現オプションを有効にします。
これらの参照を含むテキストファイルをインポートする場合は、「HTMLを許可」オプションを有効にする必要があります。
次のようにテンプレートでこれを行うことに誘惑されるかもしれません:
<img src="{{field name}}">
Ankiは2つの理由でこれをサポートしていません:使用されているメディアの検索は、各カードをレンダリングする必要があるため高価であり、そのような機能は共有デッキのユーザーには明らかではありません。代わりに検索と置換のテクニックを使用してください。
大量メディア
一度に大量のメディアをインポートする別のオプションは、メディアインポートアドオンを使用することです。 このアドオンは、選択したフォルダ内のすべてのファイルのノートを自動的に作成し、表面にファイル名(ファイル拡張子を除く。apple.jpgというファイルがある場合、表面は「apple」と表示されます)、裏面に画像や音声を配置します。メディアとファイル名の異なる配置が必要な場合は、作成されたカードのノートタイプを変更できます。
重複と更新
テキストファイルをインポートするとき、Ankiは最初のフィールドを使用してノートが一意であるかどうかを判断します。デフォルトでは、インポートしているファイルの最初のフィールドがコレクション内の既存のノートの1つと一致し、その既存のノートがインポートしているタイプと同じタイプである場合、既存のノートの他のフィールドはインポートされたファイルの内容に基づいて更新されます。インポート画面のドロップダウンボックスでこの動作を変更できます。重複を完全に無視するか、既存のものを更新する代わりに新しいノートとしてインポートすることができます。
一致範囲設定は、重複がどのように識別されるかを制御します。ノートタイプが選択されている場合、同じノートタイプを持つ別のノートが同じ最初のフィールドを持っている場合、Ankiは重複を識別します。ノートタイプとデッキに設定すると、既存のノートがインポート先のデッキにもある場合にのみ重複がフラグ付けされます。
更新をオンにしていて、インポートしているノートの古いバージョンがすでにコレクションにある場合、インポートダイアログで設定したデッキに移動されるのではなく、その場で(現在のデッキで)更新されます。ノートがその場で更新される場合、すべてのカードの既存のスケジューリング情報は保持されます。
.apkgファイルでの重複の処理方法については、デッキパッケージセクションを参照してください。
ファイルヘッダー
Anki 2.1.54以降は、インポートをより強力または便利にするためにテキストファイルに含めることができる特定のヘッダーをサポートしています。これらは#key:value
ペアで構成され、ファイルの先頭に別々の行でリストする必要があります。
キー | 許可される値 | 動作 |
---|---|---|
separator | Comma 、Semicolon 、Tab 、Space 、Pipe 、Colon 、または対応するリテラル文字 | フィールド区切り文字を決定します。 |
html | true 、false | ファイルがHTMLとして扱われるかどうかを決定します。 |
tags | スペースで区切られたタグのリスト | リストされたタグをインポートされたすべてのノートに追加します。 |
columns | 以前に設定した区切り文字で区切られた名前のリスト | 列数を決定し、インポート時に指定された名前を表示します。 |
notetype | ノートタイプ名またはID | 存在する場合、ノートタイプをプリセットします。 |
deck | デッキ名またはID | 存在する場合、デッキをプリセットします。 |
notetype column | 1 、2 、3 、… | 各ノートのノートタイプ名またはIDを含む列を決定します。ノートタイプ列を参照してください。 |
deck column | 1 、2 、3 、… | 各ノートのデッキ名またはIDを含む列を決定します。デッキ列を参照してください。 |
tags column | 1 、2 、3 、… | 各ノートのタグを含む列を決定します。 |
guid column | 1 、2 、3 、… | 各ノートのGUIDを含む列を決定します。GUID列を参照してください。 |
一部のヘッダーにはさらなる意味があります。
ノートタイプ列
通常、ファイルからのすべてのノートは単一のノートタイプにマッピングされます。ノートタイプ名またはIDを含む列がある場合、それが変わります。
これにより、異なるノートタイプのノートをインポートでき、そのフィールドは暗黙的にマッピングされます: 最初の通常列は、ノートタイプに関係なく、任意のノートの最初のフィールドに使用され、2番目の通常列は2番目のフィールドに使用されます。 ここでの_通常列_とは、デッキ、タグ、ノートタイプ、GUIDなどの特別な情報を含まない列のことです。
デッキ列
通常、テキストファイルのインポートの結果として作成された新しいカードは、選択した単一のデッキに配置されます。ただし、ファイルにデッキ列が含まれている場合、ノートの新しいカードは指定されたデッキに配置されます。デッキが存在しない場合、指定された名前のデッキが作成されます。
GUID列
GUIDは_グローバルに一意な識別子_の略です。Ankiでノートを作成すると、Ankiは各ノートに一意のIDを割り当て、重複チェックに使用できます。GUIDを含めてノートをエクスポートすると、ノートに変更を加えることができ、GUIDフィールドを変更しない限り、ノートをインポートして既存のノートを更新できます。
GUIDはAnkiによって作成されることを意図していることに注意してください。MYNOTE0001
などの独自のIDを作成している場合は、AnkiのGUIDに割り当てる代わりに、最初のフィールドにIDを配置することをお勧めします。インポート時に、Ankiは重複チェックに最初のフィールドまたはGUIDのいずれかを使用できるため、ノートを更新できるようにするためにIDをGUIDにする必要はありません。
もう1つ注意すべきことは、空でないGUIDを持つ行では重複オプションが機能しないことです。GUIDが提供され、すでにコレクションに存在する場合、重複は作成されません。