Телеграм-бот для автоматизированной конвертации документов с поддержкой форматирования по ГОСТ 7.32-2017 и анализа структуры проектов.
- Полная поддержка ГОСТ 7.32-2017: автоматическое форматирование научно-технической документации
- Интеллектуальная обработка синтаксиса: заголовки, списки, таблицы, блоки кода
- Автоматическая нумерация: иерархическая нумерация разделов (1.1.1, 1.1.2)
- Управление сносками: интеграция footnotes с автоматическим форматированием
- Настраиваемая типографика: Times New Roman 14pt, межстрочный интервал 1.5
- Древовидная визуализация: полная структура проекта с UTF-8 оформлением
- Извлечение содержимого: автоматический экспорт кода из всех текстовых файлов
- Интеллектуальная фильтрация: игнорирование служебных директорий (node_modules, pycache)
- Обработка бинарных файлов: детектирование и генерация placeholder для медиа
| Компонент | Технология | Назначение |
|---|---|---|
| Bot Framework | aiogram 3.x | Асинхронная обработка Telegram API |
| Document Processing | python-docx | Генерация DOCX с программным управлением стилями |
| Parsing Engine | re (regex) | Парсинг Markdown синтаксиса |
| Archive Handling | zipfile | Распаковка и анализ архивов |
| Async Runtime | asyncio | Конкурентная обработка запросов |
- Python 3.10 или выше
- pip package manager
- Telegram Bot Token (получить у @BotFather)
# Клонирование репозитория
git clone https://github.com/EDeev/my_converterbot.git
cd my_converterbot
# Установка зависимостей
pip install -r requirements.txt
# Конфигурация токена
# Отредактируйте bot.py, установите ваш BOT_TOKEN
# BOT_TOKEN = "your_telegram_bot_token_here"
# Запуск бота
python bot.py/start— инициализация и приветственное сообщение/help— детальная документация по функциям
- Отправьте
.mdфайл боту - Система автоматически применит ГОСТ форматирование
- Получите готовый
.docxдокумент
Пример входного Markdown:
# Введение
Основной текст с **жирным** и *курсивным* форматированием[^1].
## 1. Методология
- Пункт списка 1
- Пункт списка 2
[^1]: Текст сноски- Отправьте
.zipархив с проектом - Бот извлечет и проанализирует структуру
- Получите
project_structure.txtс полным содержимым
my_converterbot/
├── bot.py # Основной модуль Telegram бота
├── md_to_docx.py # Конвертер Markdown с ГОСТ движком
├── rep_to_txt.py # Анализатор проектных структур
├── requirements.txt # Спецификация зависимостей
└── README.md # Текущая документация
Класс DocumentSettings обеспечивает гранулярное управление:
- Размеры шрифтов (14pt основной текст, 16pt заголовки первого уровня)
- Отступы документа (левый: 3.0 см для переплета)
- Режимы нумерации (decimal: 1.1.1 или simple: 1)
- Позиционирование номеров страниц
Алгоритм обработки списков:
- Распознавание вложенности через отступы
- Автоматическая замена bullet points на длинное тире (ГОСТ)
- Сохранение иерархической структуры
Система обработки сносок:
- Inline маркеры
[^1]→ верхний индекс в тексте - Автоматическая агрегация определений
- Размещение в конце документа с разделителем
- Максимальный размер файла: 20 МБ (Telegram API limitation)
- Поддерживаемые форматы входных данных:
.md,.zip - Кодировки: UTF-8, UTF-8-sig, CP1251, Latin1 (fallback цепочка)
- Обработка Markdown: ~0.5-2 сек для документов до 50 страниц
- Анализ ZIP архивов: ~1-5 сек для проектов до 1000 файлов
- Конкурентная обработка: до 10 одновременных запросов
from md_to_docx import MarkdownToDocxConverter, DocumentSettings
settings = DocumentSettings()
settings.font_name = "Times New Roman"
settings.font_size = 14
settings.line_spacing = 1.5
settings.margin_left = 3.0
settings.auto_numbering_headings = True
settings.numbering_format = "decimal"
converter = MarkdownToDocxConverter(settings)
converter.convert("input.md", "output.docx")Этот проект является некоммерческим и распространяется под лицензией MIT.
Деев Егор Викторович - Backend Developer
- GitHub: @EDeev
- Email: egor@deev.space
- Telegram: @Egor_Deev
Создано с ❤️ от вашего дорогого - deev.space ©