Files
md-to-docx/DEVELOPER.md

61 lines
1.7 KiB
Markdown
Raw Permalink Normal View History

2025-12-08 17:48:35 +03:00
# Документация разработчика
## Архитектура
```
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 (опционально)