Files
md-to-docx/DEVELOPER.md
Mikan bba1e8ca7e [AI]
MVP готов
2025-12-08 17:48:35 +03:00

1.7 KiB
Raw Permalink Blame History

Документация разработчика

Архитектура

src/
├── __main__.py          # CLI (typer)
├── core/
│   ├── converter.py     # основная логика
│   ├── renderer.py      # парсинг и диспетчеризация
│   └── style_registry.py # стили
├── handlers/
│   ├── __init__.py      # реестр обработчиков
│   └── builtin.py       # встроенные обработчики
├── plugins/             # плагины (пользовательские)
└── utils.py             # вспомогательные функции

Добавление нового обработчика

  1. Создайте функцию:
@register_handler("new_element")
def handle_new_element(node, doc, images_dir, style_reg):
    # ваш код
    pass
  1. Регистрируйте через @register_handler("type")
  2. В 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 (опционально)