4.4 KiB
Сырой текст задания → плоская карточка
Описание проекта
Проект реализует конвертацию «сырого» текста задания (например, из формата Markdown или простого текста) в плоскую карточку – компактный формат, пригодный для отображения в чат‑ботах, веб‑страницах и мобильных приложениях.
Основные возможности:
- Парсинг исходного текста с выделением заголовков, списков, цитат и т.д.
- Генерация упрощённой карточки без лишних разметок.
- Поддержка нескольких языков (английский/русский) через простую локализацию.
Структура проекта
project/
├── src/
│ ├── parser.py # Парсер исходного текста
│ ├── card_generator.py # Генератор карточки
│ └── utils.py # Вспомогательные функции
├── tests/ # Тесты (необязательно)
├── requirements.txt # Зависимости
└── README.md # Это файл
Установка зависимостей
# Создайте виртуальное окружение (рекомендовано)
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
# Установите зависимости из requirements.txt
pip install -r requirements.txt
requirements.txt содержит только стандартные библиотеки, но если понадобится парсинг Markdown – добавьте markdown.
Запуск каждого файла
1. Парсер (parser.py)
Парсер читает сырой текст и возвращает структуру данных (словарь/список).
python src/parser.py <path_to_input_file>
Пример:
python src/parser.py data/raw_task.txt
Вывод в консоль будет выглядеть так:
{
"title": "Задача №1",
"body": [
{"type":"paragraph","text":"Выполните ..."},
{"type":"list","items":["Пункт 1", "Пункт 2"]},
...
]
}
2. Генератор карточки (card_generator.py)
Генерирует плоскую карточку из структуры, полученной парсером.
python src/card_generator.py <path_to_parsed_json> <output_file>
Пример:
python src/card_generator.py data/parsed.json data/card.txt
3. Полный скрипт (main.py)
Если в проекте есть main.py, он объединяет оба шага.
python src/main.py <path_to_raw_text> <output_file>
Пример:
python src/main.py data/raw_task.txt data/card.txt
Пример использования
-
Соберите сырой текст задания в файл
raw_task.txt:# Задача 1 Напишите программу, которая выводит сумму двух чисел. ## Требования - Ввод: два целых числа - Вывод: их сумма -
Запустите конвертацию:
python src/main.py raw_task.txt card.txt -
Результат (
card.txt):Задача 1 Напишите программу, которая выводит сумму двух чисел. Требования: - Ввод: два целых числа - Вывод: их сумма
Тесты (необязательно)
Если в проекте есть папка tests, запустите:
pytest tests/
Лицензия
MIT License – см. файл LICENSE.
Важно:
- Все пути указываются относительно корня проекта.
- При работе с большими файлами используйте потоковую обработку (
open(..., 'r', encoding='utf-8')).
Если возникнут вопросы – откройте issue в репозитории!