Импортировать изображения в anki автоматически на лицевую и тыльную сторону карт

У меня есть несколько изображений с таким именем в папке:

Image_00036.jpg
Image_00037.jpg
Image_00038.jpg
Image_00039.jpg

Я хочу создать несколько карт. Каждая карточка будет иметь четные изображения на лицевой стороне и нечетные изображения на ее оборотной стороне. Как я могу сделать это автоматически, без необходимости вручную перетаскивать каждое изображение?

1 ответ

Шаг 1. Подготовьте метаданные

Я полагаю, что вы уже знаете:

  1. Как создать новую колоду (не обязательно, но имеет смысл)
  2. Как определить новый тип заметки
  3. Как определить карты для типа заметки
  4. Импорт из текстового файла с разделителями

Если нет - проверьте документацию, это не сложно.

Вам нужно создать тип заметки как минимум с 3 полями: Id, FrontImage, BackImage

Шаг 2. Создать текстовый файл с разделителями

Я предполагаю, что ваши файлы изображений пронумерованы от 0 до N с предшествующими нулями. Например, если N=100, тогда имена изображений: image00000.jpg - image00100.jpg.

Цель: создать текстовый файл с разделителями, например:

Card_00000;<img src="Image_00000.jpg"/>;<img src="Image_00001.jpg"/>
Card_00001;<img src="Image_00002.jpg"/>;<img src="Image_00003.jpg"/>
Card_00002;<img src="Image_00004.jpg"/>;<img src="Image_00005.jpg"/>
Card_00003;<img src="Image_00006.jpg"/>;<img src="Image_00007.jpg"/>
Card_00004;<img src="Image_00008.jpg"/>;<img src="Image_00009.jpg"/>
Card_00005;<img src="Image_00010.jpg"/>;<img src="Image_00011.jpg"/>
Card_00006;<img src="Image_00012.jpg"/>;<img src="Image_00013.jpg"/>
Card_00007;<img src="Image_00014.jpg"/>;<img src="Image_00015.jpg"/>
Card_00008;<img src="Image_00016.jpg"/>;<img src="Image_00017.jpg"/>
Card_00009;<img src="Image_00018.jpg"/>;<img src="Image_00019.jpg"/>
Card_00010;<img src="Image_00020.jpg"/>;<img src="Image_00021.jpg"/>
Card_00011;<img src="Image_00022.jpg"/>;<img src="Image_00023.jpg"/>

Рецепт 1. Используйте язык сценариев

В генерации питона могут быть:

print("\n".join(['Card_%05d;<img src="Image_%05d.jpg"/>;<img src="Image_%05d.jpg"/>' % (image_number,image_number*2, image_number*2 +1 )
for image_number in range(0, int(100/2))]))

Рецепт 2. Используйте электронную таблицу

Если вам удобнее использовать офисные инструменты, вы можете использовать электронную таблицу.

Вам необходимо создать: автоинкрементное поле и 2 вычисляемых поля.

Пример: https://docs.google.com/spreadsheets/d/1W1DQ2ZSm4XuYNeKlkybbTeXh7RGqkk8H-7CgCaBVeI4/pubhtml

Формула для фронта:

= Concatenate("<src img=""Image", Text(A2*2-1,"00000"),".jpg"" />")

Шаг 3. Сохранение в файл, импорт, копирование изображений в папку мультимедиа, наслаждайтесь

Точно так.

Удачи!

Обратите внимание, что формула для использования метода электронной таблицы "Рецепт 2" должна быть

= Concatenate("<img src=""Image", Text(A2*2-1,"00000"),".jpg"" />")

В ответе Алекса Ю в формуле указано "src img", которое не распознается Anki. Ваш вывод должен быть в формате "img src".

Если ваши файлы начинаются с 1 без следующих нулей, вы можете закодировать это как:

= Concatenate("<img src=""Image", Text(A2*2-1,"0"),".jpg"" />")

Если ваши файлы из PowerPoint и названы "Slide1", вы можете изменить формулу на:

= Concatenate("<img src=""Slide", Text(A2*2-1,"0"),".jpg"" />")

Кроме того, если ваши файлы изображений имеют формат.jepg, замените ".jpg" в формуле на ".jepg", и он будет работать правильно без необходимости конвертировать ваши файлы.

Другие вопросы по тегам