From f4fa64526ed3700b42908fc3eca1bbda1283ec50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D1=80=D0=B8=D1=8F=20=D0=91=D0=B5=D1=80=D0=B4?= =?UTF-8?q?=D0=BD=D0=B8=D0=BA=D0=BE=D0=B2=D0=B0?= Date: Tue, 26 May 2026 16:51:53 +0000 Subject: [PATCH] =?UTF-8?q?=D1=81=D1=8B=D1=80=D0=BE=D0=B9=20=D1=82=D0=B5?= =?UTF-8?q?=D0=BA=D1=81=D1=82=20=D0=B7=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8=D1=8F?= =?UTF-8?q?=20=E2=86=92=20=D0=BF=D0=BB=D0=BE=D1=81=D0=BA=D0=B0=D1=8F=20?= =?UTF-8?q?=D0=BA=D0=B0=D1=80=D1=82=D0=BE=D1=87=D0=BA=D0=B0:=20README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../README.md | 211 ++++++++---------- 1 file changed, 92 insertions(+), 119 deletions(-) diff --git a/solutions/69dd4221f309a98be0006b2e_сырой_текст_задания___плоская_карточка/README.md b/solutions/69dd4221f309a98be0006b2e_сырой_текст_задания___плоская_карточка/README.md index 3d8cba6..592c759 100644 --- a/solutions/69dd4221f309a98be0006b2e_сырой_текст_задания___плоская_карточка/README.md +++ b/solutions/69dd4221f309a98be0006b2e_сырой_текст_задания___плоская_карточка/README.md @@ -1,137 +1,110 @@ -# Сырой текст задания → плоская карточка +# Сырой текст → плоская карточка -## Описание проекта -Проект реализует конвертацию «сырого» текста задания (например, из формата Markdown или простого текста) в **плоскую карточку** – компактный формат, пригодный для отображения в чат‑ботах, веб‑страницах и мобильных приложениях. -Основные возможности: +Простой скрипт, который берёт **сырой текст** задания (например, из PDF‑файла) и преобразует его в **плоскую карточку** – готовый к использованию шаблон для обучения. +В проекте реализованы два основных файла: -- Парсинг исходного текста с выделением заголовков, списков, цитат и т.д. -- Генерация упрощённой карточки без лишних разметок. -- Поддержка нескольких языков (английский/русский) через простую локализацию. +| Файл | Что делает | +|------|------------| +| `extract_text.py` | Извлекает текст из PDF‑файла (или другого источника) и сохраняет его в `.txt`. | +| `flatten_card.py` | Читает сырой текст, разбивает его на логические блоки (описание, условия, примеры), форматирует и выводит «плоскую карточку» в консоль или в файл. | -## Структура проекта -``` -project/ -├── src/ -│ ├── parser.py # Парсер исходного текста -│ ├── card_generator.py # Генератор карточки -│ └── utils.py # Вспомогательные функции -├── tests/ # Тесты (необязательно) -├── requirements.txt # Зависимости -└── README.md # Это файл -``` +--- -## Установка зависимостей +## 📦 Установка зависимостей ```bash -# Создайте виртуальное окружение (рекомендовано) +# Создайте виртуальное окружение (рекомендуется) python -m venv .venv -source .venv/bin/activate # Windows: .venv\Scripts\activate +source .venv/bin/activate # Windows: .\.venv\Scripts\activate # Установите зависимости из requirements.txt pip install -r requirements.txt ``` -`requirements.txt` содержит только стандартные библиотеки, но если понадобится парсинг Markdown – добавьте `markdown`. +`requirements.txt` содержит: -## Запуск каждого файла - -### 1. Парсер (`parser.py`) -Парсер читает сырой текст и возвращает структуру данных (словарь/список). - -```bash -python src/parser.py +```text +PyPDF2==3.0.1 +python-docx==0.8.11 # если понадобится работа с DOCX ``` -Пример: - -```bash -python src/parser.py data/raw_task.txt -``` - -Вывод в консоль будет выглядеть так: -```json -{ - "title": "Задача №1", - "body": [ - {"type":"paragraph","text":"Выполните ..."}, - {"type":"list","items":["Пункт 1", "Пункт 2"]}, - ... - ] -} -``` - -### 2. Генератор карточки (`card_generator.py`) -Генерирует плоскую карточку из структуры, полученной парсером. - -```bash -python src/card_generator.py -``` - -Пример: - -```bash -python src/card_generator.py data/parsed.json data/card.txt -``` - -### 3. Полный скрипт (`main.py`) -Если в проекте есть `main.py`, он объединяет оба шага. - -```bash -python src/main.py -``` - -Пример: - -```bash -python src/main.py data/raw_task.txt data/card.txt -``` - -## Пример использования - -1. **Соберите сырой текст задания** в файл `raw_task.txt`: - ``` - # Задача 1 - - Напишите программу, которая выводит сумму двух чисел. - - ## Требования - - - Ввод: два целых числа - - Вывод: их сумма - ``` - -2. **Запустите конвертацию**: - - ```bash - python src/main.py raw_task.txt card.txt - ``` - -3. **Результат (`card.txt`)**: - ``` - Задача 1 - Напишите программу, которая выводит сумму двух чисел. - - Требования: - - Ввод: два целых числа - - Вывод: их сумма - ``` - -## Тесты (необязательно) - -Если в проекте есть папка `tests`, запустите: - -```bash -pytest tests/ -``` - -## Лицензия - -MIT License – см. файл `LICENSE`. - --- -**Важно:** -- Все пути указываются относительно корня проекта. -- При работе с большими файлами используйте потоковую обработку (`open(..., 'r', encoding='utf-8')`). +## 🚀 Запуск файлов -Если возникнут вопросы – откройте issue в репозитории! \ No newline at end of file +### 1️⃣ Извлечение текста из PDF + +```bash +python extract_text.py --input path/to/assignment.pdf --output assignment.txt +``` + +- `--input` – путь к исходному файлу (PDF, DOCX и т.д.). +- `--output` – куда сохранить извлечённый текст. + +### 2️⃣ Форматирование в плоскую карточку + +```bash +python flatten_card.py --input assignment.txt --output card.txt +``` + +- `--input` – файл с сырым текстом. +- `--output` – путь, где будет сохранена «плоская» карточка. + Если опция не указана, результат выводится в консоль. + +--- + +## 📄 Пример использования + +### Исходный PDF (`assignment.pdf`) + +``` +Задание: Написать программу, которая считает сумму двух чисел. +Условие: +- Вводятся два целых числа. +- Вывести их сумму. +Пример: +Ввод: 3 5 +Вывод: 8 +``` + +### Команды + +```bash +python extract_text.py --input assignment.pdf --output raw.txt +python flatten_card.py --input raw.txt --output card.txt +``` + +### Полученная карточка (`card.txt`) + +``` +Задание: +Написать программу, которая считает сумму двух чисел. + +Условие: +- Вводятся два целых числа. +- Вывести их сумму. + +Пример: +Ввод: 3 5 +Вывод: 8 +``` + +--- + +## 📚 Что дальше? + +* Добавить поддержку Markdown‑форматирования (`--format markdown`). +* Интегрировать с Anki для автоматической импорта карточек. +* Расширить парсер, чтобы корректно обрабатывать таблицы и списки. + +--- + +### Контрибьюторы + +Если хотите помочь – откройте issue или pull request. +Пожалуйста, соблюдайте стиль кода из `PEP8` и добавляйте тесты в папку `tests/`. + +--- + +**Автор:** *[Ваше имя]* +**Дата создания:** 2026‑05‑26 \ No newline at end of file