Текстові файли

Будь-який звичайний текстовий файл, який містить поля, розділені комами, крапками з комою або символами табуляції, можна імпортувати в Anki за виконання деяких умов.

  • Файли мають бути простим текстом (myfile.txt). Інші формати, наприклад myfile.xls, myfile.rtf, myfile.doc, потрібно спочатку зберегти як звичайний текстовий файл.

  • Файли мають бути у форматі UTF-8 (див. нижче).

  • Перший рядок визначає роздільний символ – якщо Anki знаходить «;» у першому рядку використає це, якщо знайде кому - використає її, тощо.

  • Anki визначає кількість полів у файлі, дивлячись на перший (без коментарів) рядок. Якщо деякі з пізніших записів у файлі містять менше полів, Anki розглядатиме відсутні поля як порожні. Якщо деякі з записів містять додаткові поля, додатковий вміст не буде імпортовано.

Поля у текстовому файлі можна зіставити з будь-яким полем у нотатках, включаючи поле тегів. Ви можете вибрати, яке поле в текстовому файлі відповідає полю в нотатці під час імпорту.

Коли ви імпортуєте текстовий файл, ви можете вибрати, у яку колоду помістити карти. Майте на увазі, що якщо для одного або кількох шаблонів встановлено параметр заміни колоди, карти потраплять до цієї колоди, а не до тієї, яку ви обрали.

Це приклад дійсного файлу з трьома полями:

яблуко; банан; виноград
деякий текст; інший текст; ще більше тексту

Існує два способи додати в поля символи нового рядка або роздільника полів.

Виключіть символи, помістивши вміст поля в лапки:

привіт;"це
відповідь у два рядки"
два; це однорядкове поле
"це включає;(крапка з комою)"; інше поле

Оскільки лапки використовуються для позначення початку та кінця поля, якщо ви бажаєте включити їх у своє поле, вам потрібно замінити одну подвійну лапку двома подвійними лапками, щоб «виключити» їх із звичайної обробки, наприклад:

поле одне;"поле друге з ""екранованими лапками"" всередині"

Коли ви використовуєте програму для роботи з електронними таблицями, як-от Libreoffice, для створення файлу CSV, вона автоматично подбає про екранування подвійних лапок.

Використовуйте нові рядки HTML:

привіт; це<br>відповідь у два рядки
два; це один рядок

Вам потрібно ввімкнути прапорець «Дозволити HTML у полях» у діалоговому вікні імпорту, щоб нові рядки HTML працювали.

Екранування кількох рядків не працюватимуть належним чином, якщо ви використовуєте закриті видалення, які охоплюють кілька рядків. У цьому випадку використовуйте натомість символи нового рядка HTML.

Ви також можете додати теги до іншого поля та вибрати його як поле тегів у діалоговому вікні імпорту:

перше поле;друге поле;теги

Це приклад дійсного файлу, де перший рядок ігнорується (#):

# це коментар і він ігнорується
foo bar;bar baz;baz quux
поле1;поле2;поле3

Електронні таблиці та UTF-8

Якщо у вашому файлі є нелатинські символи (наприклад, наголоси, японські символи тощо), Anki очікує, що файли будуть збережені в «кодуванні UTF-8». Найпростіший спосіб зробити це — використовувати безкоштовну програму для роботи з електронними таблицями LibreOffice замість Excel для редагування файлу, оскільки вона підтримує UTF-8, а також правильно експортує багаторядковий вміст, на відміну від Excel. Якщо ви хочете й надалі використовувати Excel, перегляньте цю публікацію на форумі для отримання додаткової інформації.

Щоб зберегти електронну таблицю у файлі, який Anki може читати за допомогою LibreOffice, перейдіть у меню File>Save as, а потім виберіть CSV як тип файлу. Після прийняття параметрів за замовчуванням LibreOffice збереже файл, і ви зможете імпортувати його в Anki.

HTML

Anki може розглядати текст, імпортований із текстових файлів, як HTML (мова, що використовується для веб-сторінок). Це означає, що текст із жирним шрифтом, курсивом та іншим форматуванням можна експортувати в текстовий файл і імпортувати знову. Якщо бажаєте включити форматування HTML, можете встановити прапорець «дозволити HTML у полях» під час імпорту. Ви також можете вимкнути цю функцію, якщо намагаєтеся імпортувати картки, вміст яких містить кутові дужки або інший синтаксис HTML.

Якщо бажаєте використовувати HTML для форматування файлу, і також включити кутові дужки або амперсанди, можете використати такі заміни:

СимволЗаміна
<&lt;
>&gt;
&&amp;

Імпорт медіа

Якщо ви хочете додати аудіо та зображення з імпортованого текстового файлу, скопіюйте файли в папку collection.media. Не розміщуйте підкаталоги в папці медіа, інакше деякі функції не працюватимуть.

Після того, як ви скопіювали файли, змініть одне з полів у текстовому файлі, як описано нижче.

<img src="myimage.jpg">

чи

[sound:myaudio.mp3]

Крім того, ви можете скористатися функцією знайти та замінити на екрані перегляду, щоб оновити всі поля одночасно. Якщо кожне поле містить текст, як-от «myaudio», і ви бажаєте, щоб воно відтворювало звук, знайдіть (.*) і замініть його на «[sound:\1.mp3]», із увімкненим параметром регулярні вирази.

Імпортуючи текстовий файл із цими посиланнями, переконайтеся, що ввімкнуто параметр «Дозволити HTML».

У вас може виникнути спокуса зробити це в шаблоні, наприклад:

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

Anki не підтримує це з двох причин: пошук використаних носіїв є дорогим, оскільки кожну картку потрібно відобразити, і така функціональність неочевидна для користувачів спільної колоди. Натомість використовуйте техніку пошуку та заміни.

Масові медіа

Ще один варіант одночасного імпорту великої кількості медіафайлів — це використання надбудови для імпорту медіа. Ця надбудова автоматично створюватиме нотатки для всіх файлів у вибраній вами папці з іменами файлів на передній панелі (без розширення файлу, тому, якщо у вас є файл із назвою apple.jpg, на передній панелі буде написано «яблуко») і зображення або аудіо на звороті. Якщо ви бажаєте інше розташування медіа та імен файлів, ви можете змінити тип нотатки створених карток пізніше.

Додавання тегів

Якщо ви хочете додати «tag1» і «tag2» до кожного рядка, який ви імпортуєте, додайте наступне у верхній частині текстового файлу:

tags:tag1 tag2

Дублікати та оновлення

Під час імпорту текстових файлів Anki використовує перше поле, щоб визначити, чи є нотатка унікальною. За замовчуванням, якщо файл, який ви імпортуєте, має перше поле, яке відповідає одній із наявних нотаток у вашій колекції, і ця наявна нотатка має той самий тип, що й тип, який ви імпортуєте, інші поля наявної нотатки оновлюватимуться відповідно до вмісту імпортованого файлу. Розкривне меню на екрані імпорту дозволяє змінити цю поведінку, або повністю ігнорувати дублікати, або імпортувати їх як нові нотатки замість оновлення існуючих.

Налаштування «області відповідності» контролює спосіб визначення дублікатів. Якщо вибрано «notetype», Anki визначить дублікат, якщо інша нотатка з таким же типом має те саме перше поле. Якщо встановлено значення «notetype and deck», дублікат буде позначено, лише якщо наявна нотатка також є в колоді, до якої ви імпортуєте.

Якщо у вас увімкнено оновлення та старіші версії нотаток, які ви імпортуєте, уже є у вашій колекції, їх буде оновлено на місці (у їхніх поточних колодах), а не буде переміщено до колоди, яку ви встановили в діалоговому вікні імпорту. Якщо нотатки оновлено на місці, наявна інформація про розклади на всіх їхніх картках буде збережена.

Щоб дізнатися, як обробляються дублікати у файлах .apkg, перегляньте розділ Упаковані колоди.

Заголовки файлів

Anki 2.1.54+ підтримує певні заголовки, які можна включити в текстовий файл, щоб зробити імпорт потужнішим або зручнішим. Вони складаються з пар #key:value і мають бути вказані в окремих рядках у верхній частині файлу, хоча рядок тегів може передувати їм. Оскільки рядки заголовка починаються з символу коментаря #, попередні клієнти Anki просто ігноруватимуть їх.

Ви повинні ввімкнути нову опцію імпорту на екрані налаштувань, щоб використовувати її на 2.1.54. У 2.1.55 новий шлях імпорту є типовим.

КлючДозволені значенняПоведінка
separatorComma, Semicolon, Tab, Space, Pipe, Colon, or the according literal charactersВизначає роздільник полів.
htmltrue, falseВизначає, чи розглядається файл як HTML.
tagsСписок тегів, розділених пробіламиТе саме, що старий синтаксис.
columnsСписок імен, розділених попередньо встановленим роздільникомВизначає кількість стовпців і показує їхні назви під час імпорту.
notetypeНазва або ідентифікатор типу нотаткиПопередньо встановлює тип нотатки, якщо він існує.
deckНазва або ідентифікатор колодиПопередньо налаштовує колоду, якщо вона існує.
notetype column1, 2, 3, ...Визначає, який стовпець містить назву типу нотатки або ідентифікатор кожної нотатки, див. Стовпець типу нотатки.
deck column1, 2, 3, ...Визначає, який стовпець містить назву колоди або ідентифікатор кожної нотатки, див. Стовпець колоди.
tags column1, 2, 3, ...Визначає, який стовпець містить теги кожної нотатки.
guid column1, 2, 3, ...Визначає, який стовпець містить GUID кожної нотатки, див. Стовпець GUID.

Деякі заголовки мають додаткові значення.

Стовпець Notetype

Зазвичай усі нотатки з файлу буде зіставлено з одним типом нотаток, і ви можете вибрати, який стовпець має бути зіставлено з полем цього типу нотаток.

Це змінюється, якщо є стовпець із назвами чи ідентифікаторами типів нотаток. Це дає змогу імпортувати нотатки з різними типами, і їхні поля будуть зіставлені неявно: перший звичайний стовпець використовується для першого поля будь-якої нотатки незалежно від її типу, другий звичайний стовпець – для другого поля тощо. «Звичайний стовпець» тут означає стовпець, який не містить спеціальної інформації, наприклад колод, тегів, типів нотаток або GUID.

Колонка колоди

Зазвичай будь-які нові карти, створені в результаті імпортування за допомогою текстового файлу, будуть розміщені в одній колоді за вашим вибором. Проте, якщо файл містить колонку колоди, нові карти нотатки будуть розміщені в вказаній колоді. Якщо колоди не існує, буде створено колоду з вказаною назвою.

Стовпець GUID

GUID означає Globally Unique Identifier. Коли ви створюєте нотатки в Anki, Anki призначає кожній нотатці унікальний ідентифікатор, який можна використовувати для перевірки дублікатів. Якщо ви експортуєте свої нотатки з включеним GUID, можете вносити зміни в нотатки, і якщо поле GUID не змінено, то ви зможете імпортувати нотатки назад, щоб оновити наявні.

Зауважте, що GUID призначено для створення самим Anki. Якщо ви створюєте власні ідентифікатори, наприклад MYNOTE0001, тоді рекомендується розміщувати їх в першому полі, а не призначати внутрішньому GUID Anki. Під час імпорту Anki може використовувати або перше поле, або GUID для перевірки дублікатів, тому вам не потрібно створювати ідентифікатори GUID, щоб мати можливість оновлювати свої нотатки.

Ще одна річ, на яку слід звернути увагу, полягає в тому, що параметр «дублікат» не працюватиме для рядків, які мають непорожній GUID. Якщо GUID надано та вже існує в колекції, дублікат не буде створено.