# Anki Deck Generator with Syntax Highlighting Этот проект позволяет создавать колоду Anki из JSON файла с использованием подсветки синтаксиса для вопросов и ответов, написанных в формате Markdown. ## Установка ### 1. Склонируйте репозиторий или загрузите файлы проекта. ### 2. Создайте виртуальное окружение: ```sh python -m venv env ``` ### 3. Активируйте виртуальное окружение: ```sh .\env\Scripts\activate # windows source env/bin/activate # macOS & Linux ``` ### 4. Установите необходимые зависимости: ```sh pip install -r requirements.txt ``` ### 5. Подготовьте JSON файл (например, cards.json) со структурой, подобной следующей: ```json { "title": "Example", "model_id": 1607392319, "deck_id": 2059400110, "cards": [ { "question": "Как вывести \"Hello, World!\" на Python?", "answer": "```python\nprint(\"Hello, World!\")\n```" }, { "question": "Как создать функцию в JavaScript?", "answer": "```javascript\nfunction greet() {\n console.log(\"Hello, World!\");\n}\n```" } ] } ``` ### 6. Запуск ```sh python script_name.py cards.json ``` ## Генерация уникальных идентификаторов Идентификаторы модели (model_id) и колоды (deck_id) должны быть уникальными для каждой колоды Anki, чтобы избежать конфликтов при импорте в Anki. Эти идентификаторы могут быть любыми целыми числами, но важно, чтобы они были уникальными для каждой новой колоды или модели. ### Когда нужно менять идентификаторы? - model_id: Должен быть уникальным для каждого типа карточек. Если вы создаете несколько разных моделей с различными типами вопросов и ответов, каждый из них должен иметь свой уникальный model_id. - deck_id: Должен быть уникальным для каждой новой колоды. Если вы создаете несколько колод, каждая из них должна иметь свой уникальный deck_id. Генерация уникальных идентификаторов Чтобы избежать конфликтов, можно использовать генераторы уникальных чисел. Один из способов - использовать случайные числа или генераторы идентификаторов. ### Для генерации уникальных идентификаторов можно использовать Python: ``` python import random model_id = random.randint(1, 10**10) deck_id = random.randint(1, 10**10) ``` Или, если вы хотите избежать дублирования идентификаторов, можно использовать хэширование или UUID: ``` python import uuid model_id = uuid.uuid4().int deck_id = uuid.uuid4().int ```