[AI]
MVP готов
This commit is contained in:
60
DEVELOPER.md
Normal file
60
DEVELOPER.md
Normal file
@@ -0,0 +1,60 @@
|
||||
# Документация разработчика
|
||||
|
||||
## Архитектура
|
||||
|
||||
```
|
||||
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 (опционально)
|
||||
Reference in New Issue
Block a user