Skip to content

Telegram-бот для автоматического преобразования Markdown в DOCX с форматированием по ГОСТ 7.32-2017 и анализа структуры проекта

Notifications You must be signed in to change notification settings

EDeev/my_converterbot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📄 My Converter Bot

Python aiogram License

Телеграм-бот для автоматизированной конвертации документов с поддержкой форматирования по ГОСТ 7.32-2017 и анализа структуры проектов.

🎯 Функциональные возможности

Конвертация Markdown → DOCX

  • Полная поддержка ГОСТ 7.32-2017: автоматическое форматирование научно-технической документации
  • Интеллектуальная обработка синтаксиса: заголовки, списки, таблицы, блоки кода
  • Автоматическая нумерация: иерархическая нумерация разделов (1.1.1, 1.1.2)
  • Управление сносками: интеграция footnotes с автоматическим форматированием
  • Настраиваемая типографика: Times New Roman 14pt, межстрочный интервал 1.5

Анализ архивов → TXT

  • Древовидная визуализация: полная структура проекта с 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 — детальная документация по функциям

Рабочий процесс

Markdown → DOCX конвертация

  1. Отправьте .md файл боту
  2. Система автоматически применит ГОСТ форматирование
  3. Получите готовый .docx документ

Пример входного Markdown:

# Введение

Основной текст с **жирным** и *курсивным* форматированием[^1].

## 1. Методология

- Пункт списка 1
- Пункт списка 2

[^1]: Текст сноски

ZIP → TXT анализ

  1. Отправьте .zip архив с проектом
  2. Бот извлечет и проанализирует структуру
  3. Получите project_structure.txt с полным содержимым

⚙️ Архитектурные особенности

Модульная структура

my_converterbot/
├── bot.py              # Основной модуль Telegram бота
├── md_to_docx.py       # Конвертер Markdown с ГОСТ движком
├── rep_to_txt.py       # Анализатор проектных структур
├── requirements.txt    # Спецификация зависимостей
└── README.md          # Текущая документация

DocumentSettings: Параметрическая конфигурация

Класс DocumentSettings обеспечивает гранулярное управление:

  • Размеры шрифтов (14pt основной текст, 16pt заголовки первого уровня)
  • Отступы документа (левый: 3.0 см для переплета)
  • Режимы нумерации (decimal: 1.1.1 или simple: 1)
  • Позиционирование номеров страниц

Интеллектуальная обработка

Алгоритм обработки списков:

  • Распознавание вложенности через отступы
  • Автоматическая замена bullet points на длинное тире (ГОСТ)
  • Сохранение иерархической структуры

Система обработки сносок:

  • Inline маркеры [^1] → верхний индекс в тексте
  • Автоматическая агрегация определений
  • Размещение в конце документа с разделителем

🔒 Ограничения и constraints

  • Максимальный размер файла: 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!

Создано с ❤️ от вашего дорогого - deev.space ©

About

Telegram-бот для автоматического преобразования Markdown в DOCX с форматированием по ГОСТ 7.32-2017 и анализа структуры проекта

Topics

Resources

Stars

Watchers

Forks

Languages