CoderCastrov logo
CoderCastrov
Анки

Как программно создать колоду Anki

Как программно создать колоду Anki
просмотров
2 мин чтение
#Анки

Anki - это, вероятно, лучший инструмент для запоминания всего, что вам нужно, будь то изучение нового языка, подготовка к экзаменам или самообучение программированию.

Если вы уже использовали Anki некоторое время, вы, наверняка, согласитесь, что создание карточек занимает больше всего времени. Сегодня я хотел бы показать вам, как легко программно создать колоду - то есть без использования интерфейса Anki слишком много. В этом примере я решил создать колоду из 300 наиболее часто используемых слов на испанском языке (что можно найти в большом количестве примеров онлайн).

Начало работы

Давайте создадим новую папку и инициализируем в ней проект на TS node:

npm init ts-node-project
npm install

Получение данных

Я решил спарсить список, который я нашел на strommeninc.com. Данные красиво отформатированы в таблице:

Я решил использовать axios + cheerio для получения списка слов. Если вы знакомы с JQuery или чем-либо связанным с парсингом веб-страниц, вам не составит труда понять эту часть.

В папке src создайте файл scrape.ts:

В функции scrapeVocabulary мы получаем страницу с помощью axios, затем используем cheerio для парсинга строк таблицы и слов в ячейках таблицы.

  • Что означает .slice(1, limit + 1)? Мы обрезаем строки, чтобы убрать заголовок таблицы и позволить передавать параметр limit (например, вы можете хотеть получить только 300 самых часто встречающихся слов).
  • Что такое тип Word, который мы использовали? Это способ представления объектов, с которыми мы хотим работать. Мы определим его в нашем index.js.

Запись данных в файл

В документации Anki нам говорится, что мы можем импортировать колоду из текстового файла, используя значения, разделенные запятыми (аналогично файлу .csv).

В нашем коде нам просто нужно записать слова, которые мы только что загрузили, в файл. В директории src создайте файл writeWordsToFile.ts:

Форматирование слов

Чтобы слова было легче запомнить, мы добавим рядом с ними небольшие пометки.

Кроме того, вы могли заметить, что испанское слово в строке 139 содержит запятую, которая может нарушить наш импорт (шутка, но Anki бы сообщила вам об этом при запуске скрипта).

Давайте создадим файл formatWords.ts (все еще в нашей директории src) и напишем наши функции форматирования:

Собираем все вместе

Наконец, у нас есть весь наш "бизнес" логика написана. Теперь давайте создадим файл index.ts, который просто свяжет все вместе.

Теперь мы просто запускаем команду npm start, и вуаля! Наши слова появляются в файле anki.txt. Мы можем импортировать их непосредственно в приложение Anki Desktop (не забудьте создать новую колоду!)

Если вы хотите посмотреть исходный код приложения, он доступен онлайн!

Спасибо!

Вы все еще читаете? Вы, должно быть, очень хорошо умеете обращать внимание!

Я бы хотел услышать ваш отзыв о моих других проектах, так что не стесняйтесь посмотреть на мой GitHub ;)

Спасибо за чтение и счастливого кодирования!