Текстовые файлы
- Электронные таблицы и UTF-8
- HTML
- Импорт медиафайлов
- Массовый импорт медиа
- Дубликаты и обновление
- Заголовки файлов
Любой простой текстовый файл, содержащий поля, разделенные запятыми, точками с запятой или табуляцией, может быть импортирован в Anki, при условии, что выполняются некоторые условия.
-
Файлы должны быть простым текстом (мой_файл.txt). Другие форматы, такие как мой_файл.xls, мой_файл.rtf, мой_файл.doc, должны быть сначала сохранены как простые текстовые файлы.
-
Файлы должны быть в формате UTF-8 (см. ниже).
-
Anki определяет количество полей в файле, просматривая первую (незакомментированную) строку. Если некоторые из последующих записей в файле содержат меньше полей, Anki будет обрабатывать отсутствующие поля так, как если бы они были пустыми. Если некоторые из ваших записей содержат дополнительные поля, дополнительное содержимое не будет импортировано.
-
Anki пытается угадать, какой разделитель полей (запятая, табуляция и т.д.) использует ваш файл. Если он угадывает неправильно, вы можете изменить разделитель полей в окне настроек импорта и предварительно просмотреть результат. Или вы можете добавить заголовки файлов, чтобы задать конкретный разделитель полей.
Поля в вашем текстовом файле могут быть сопоставлены с любым полем в ваших записях, включая поле меток. Вы можете выбрать, какое поле в текстовом файле соответствует какому полю в записи при импорте.
Когда вы импортируете текстовый файл, вы можете выбрать, в какую колоду поместить карточки. Имейте в виду, что если у вас установлена опция "Подмена колоды" для одного или нескольких ваших шаблонов, то карточки не попадут в колоду которую вы выбрали.
Это пример корректного файла с тремя полями:
apple;banana;grape
first field;second field;third field
Существует два способа включить переводы строк или разделитель полей в поля.
Экранируйте символы, помещая содержимое поля в кавычки:
hello;"this is
a two line answer"
two;this is a one line field
"this includes a ; (semicolon)";another field
Поскольку кавычки используются для обозначения начала и конца поля, если вы хотите включить их внутрь вашего поля, вам нужно заменить одну двойную кавычку на две двойные кавычки, чтобы "экранировать" их от обычной обработки, вот так:
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
Это пример корректного файла, где первая строка игнорируется (#):
# этот комментарий игнорируется
foo bar;bar baz;baz quux
field1;field2;field3
Электронные таблицы и UTF-8
Если в вашем файле есть нелатинские символы (такие как акценты, японские и так далее), Anki ожидает, что файлы сохранены в "кодировке UTF-8". Самый простой способ сделать это — использовать бесплатную программу для работы с электронными таблицами LibreOffice вместо Excel для редактирования вашего файла, так как она легко поддерживает UTF-8, а также правильно экспортирует многострочное содержимое, в отличие от Excel. Если вы хотите продолжать использовать Excel, пожалуйста, ознакомьтесь с этим документом для получения дополнительной информации.
Чтобы сохранить вашу электронную таблицу в файл, который Anki может прочитать, с помощью LibreOffice, перейдите в Файл > Сохранить как, а затем выберите CSV для типа файла. После принятия параметров по умолчанию, LibreOffice сохранит файл, и вы можете затем импортировать сохраненный файл в Anki.
HTML
Anki может обрабатывать текст, импортированный из текстовых файлов, как HTML (язык, используемый для веб-страниц). Это означает, что текст с жирным шрифтом, курсивом и другим форматированием может быть экспортирован в текстовый файл и импортирован снова. Если вы хотите включить HTML форматирование, вы можете установить флажок "Разрешить HTML в полях" при импорте. Вы можете захотеть отключить его, если пытаетесь импортировать карточки, содержимое которых содержит угловые скобки или другой синтаксис HTML.
Если вы хотите использовать HTML для форматирования вашего файла и также хотите включить угловые скобки или амперсанды, то можете использовать следующие замены:
| Символ | Замена |
|---|---|
| < | < |
| > | > |
| & | & |
Импорт медиафайлов
Если вы хотите включить аудио и изображения из импорта текстового файла, скопируйте файлы в папку collection.media. Не помещайте подкаталоги в эту папку, иначе некоторые функции не будут работать.
После того как вы скопировали файлы, измените одно из полей в вашем текстовом файле следующим образом.
<img src="myimage.jpg">
или
[sound:myaudio.mp3]
В качестве альтернативы, вы можете использовать функцию Найти и заменить в окне "Просмотр", чтобы обновить все поля сразу. Если каждое поле содержит текст, например, "myaudio", и вы хотите, чтобы он воспроизводил звук, то в текстовом поле "Найти" введите (.*), а в "Заменить на" введите "[sound:\1.mp3]", с включенной опцией Регулярное выражение.
При импорте текстового файла с этими ссылками вы должны убедиться, что включили опцию "Разрешить HTML в полях".
Вы может быть захотите сделать это в шаблоне, например:
<img src="{{field name}}">
Anki не поддерживает это по двум причинам: поиск использованных медиа файлов затратен, так как каждая карточка должна быть отрендерена, и такая функциональность не очевидна для пользователей общих колод. Пожалуйста, используйте технику поиска и замены вместо этого.
Массовый импорт медиа
Другой вариант для импорта большого количества медиа за один раз — использование дополнения media import. Это дополнение автоматически создаст записи для всех файлов в папке, которую вы выберете, с именами файлов на лицевой стороне (без расширения файла, так что если у вас есть файл с именем apple.jpg, лицевая сторона будет содержать "apple") и изображениями или аудио на обратной стороне. Если вам нужна другая компоновка медиа и имен файлов, то вы можете сменить тип записи у созданных карточек.
Дубликаты и обновление
При импорте текстовых файлов Anki использует первое поле для определения, является ли запись уникальной. По умолчанию, если файл, который вы импортируете, имеет первое поле, которое совпадает с одним из существующих записей в вашей коллекции, и эта существующая запись того же типа, что и тип, который вы импортируете, другие поля существующей записи будут обновлены на основе содержимого импортированного файла. Раскрывающийся список в окне импорта позволяет вам изменить это поведение, либо полностью игнорировать дубликаты, либо импортировать их как новые записи вместо обновления существующих.
Настройка Где проверять контролирует, как идентифицируются дубликаты. Когда выбран Тип записи, Anki идентифицирует дубликат, если другая запись с тем же типом записи имеет то же первое поле. Когда установлено Тип записи и колода, дубликат будет помечен только в том случае, если существующая запись также находится в колоде, в которую вы импортируете.
Если у вас включено обновление и более старые версии записей, которые вы импортируете, уже есть в вашей коллекции, они будут обновлены на месте (в их текущих колодах), а не перемещены в колоду, которую вы установили в диалоговом окне импорта. Если записи обновлены на месте, существующая информация о планировании на всех их карточках будет сохранена.
О том, как обрабатываются дубликаты в файлах .apkg, можно узнать в разделе Упакованные колоды.
Заголовки файлов
Anki 2.1.54+ поддерживает определенные заголовки, которые можно включить в текстовый файл, чтобы сделать импорт более мощным или удобным. Они состоят из пар #ключ:значение и должны быть перечислены в отдельных строках вверху файла.
| Ключ | Допустимые значения | Поведение |
|---|---|---|
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 типа записи.
Это позволяет вам импортировать записи с разными типами записей, и их поля будут сопоставлены неявно: Первый обычный столбец используется для первого поля любой записи независимо от её типа записи, второй обычный столбец для второго поля и так далее. Обычный столбец здесь означает столбец, который не содержит специальной информации, такой как колоды, метки, тип записи или GUID.
Столбец колоды
Обычно любые новые карточки, созданные в результате импорта текстового файла, будут размещены в одной колоде по вашему выбору. Однако, если файл содержит столбец колоды, новые карточки записи будут размещены в указанной колоде вместо этого. Если колода не существует, будет создана колода с заданным именем.
Столбец GUID
GUID означает Globally Unique Identifier (Глобальный уникальный идентификатор). Когда вы создаете записи в Anki, программа присваивает каждой записи уникальный ID, который можно использовать для проверки дубликатов. Если вы экспортируете ваши записи с включенным GUID, вы можете вносить изменения в записи, и до тех пор, пока вы не изменяете поле GUID, вы сможете импортировать записи обратно для обновления существующих записей.
Обратите внимание, что GUID предназначен для создания Anki. Если вы создаете свои собственные ID, такие как MYNOTE0001, то рекомендуется размещать ID в первом поле, а не назначать их внутреннему GUID Anki. При импорте, Anki может использовать либо первое поле, либо GUID для проверки дубликатов, поэтому вам не нужно делать ID GUID, чтобы иметь возможность обновлять ваши записи.
Еще одна вещь, которую следует отметить, это то, что опция дублирования не будет работать для строк, которые имеют непустой GUID. Если GUID предоставлен и уже существует в коллекции, дубликат не будет создан.