# Документация разработчика ## Архитектура ``` src/ ├── __main__.py # CLI (typer) ├── core/ │ ├── converter.py # основная логика │ ├── renderer.py # парсинг и диспетчеризация │ └── style_registry.py # стили ├── handlers/ │ ├── __init__.py # реестр обработчиков │ └── builtin.py # встроенные обработчики ├── plugins/ # плагины (пользовательские) └── utils.py # вспомогательные функции ``` ## Добавление нового обработчика 1. Создайте функцию: ```python @register_handler("new_element") def handle_new_element(node, doc, images_dir, style_reg): # ваш код pass ``` 2. Регистрируйте через `@register_handler("type")` 3. В `mistune` должен быть соответствующий плагин (если нужен кастомный синтаксис) ## Стили Стили определяются в YAML и применяются через `StyleRegistry`. ## Тестирование ```bash pytest tests/ pytest tests/ -v -s # с логами ``` Тесты покрывают: - Обработчики - Стили - CLI - Плагины ## Docker Сборка: `docker build -t md2docx .` Запуск: `docker run -v ./inputs:/app/inputs -v ./outputs:/app/outputs md2docx ...` ## CI/CD (опционально) - Запуск тестов - Сборка Docker - Публикация в PyPI (опционально)