Files

4.4 KiB
Raw Blame History

Сырой текст задания → плоская карточка

Описание проекта

Проект реализует конвертацию «сырого» текста задания (например, из формата 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

Пример использования

  1. Соберите сырой текст задания в файл raw_task.txt:

    # Задача 1
    
    Напишите программу, которая выводит сумму двух чисел.
    
    ## Требования
    
    - Ввод: два целых числа
    - Вывод: их сумма
    
  2. Запустите конвертацию:

    python src/main.py raw_task.txt card.txt
    
  3. Результат (card.txt):

    Задача 1
    Напишите программу, которая выводит сумму двух чисел.
    
    Требования:
    - Ввод: два целых числа
    - Вывод: их сумма
    

Тесты (необязательно)

Если в проекте есть папка tests, запустите:

pytest tests/

Лицензия

MIT License см. файл LICENSE.


Важно:

  • Все пути указываются относительно корня проекта.
  • При работе с большими файлами используйте потоковую обработку (open(..., 'r', encoding='utf-8')).

Если возникнут вопросы – откройте issue в репозитории!