1.7 KiB
1.7 KiB
Документация разработчика
Архитектура
src/
├── __main__.py # CLI (typer)
├── core/
│ ├── converter.py # основная логика
│ ├── renderer.py # парсинг и диспетчеризация
│ └── style_registry.py # стили
├── handlers/
│ ├── __init__.py # реестр обработчиков
│ └── builtin.py # встроенные обработчики
├── plugins/ # плагины (пользовательские)
└── utils.py # вспомогательные функции
Добавление нового обработчика
- Создайте функцию:
@register_handler("new_element")
def handle_new_element(node, doc, images_dir, style_reg):
# ваш код
pass
- Регистрируйте через
@register_handler("type") - В
mistuneдолжен быть соответствующий плагин (если нужен кастомный синтаксис)
Стили
Стили определяются в YAML и применяются через StyleRegistry.
Тестирование
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 (опционально)