# DocxMD Converter
[](https://badge.fury.io/py/docxmd-converter)
[](https://www.python.org/downloads/)
[](https://opensource.org/licenses/MIT)
Мощный Python пакет для конвертации между Microsoft Word (.docx) и Markdown (.md) файлами с поддержкой шаблонов, рекурсивной обработкой директорий и **передовой системой пост-обработки документов**.
## ✨ Особенности
### 🔄 Конвертация
- **Двунаправленная конвертация**: `.docx` ⇄ `.md`
- **Поддержка шаблонов**: используйте кастомные .docx шаблоны
- **Рекурсивная обработка**: конвертируйте целые деревья папок
- **Сохранение структуры**: иерархия папок остается неизменной
### 🧠 Финальная интеграция - Enhanced процессор v2.1.0
- **🚀 Единая архитектура**: объединены все лучшие решения
- **📋 Интеллектуальное распознавание**: автоматическое определение должностных инструкций
- **🛡️ Безопасная обработка**: защита документации от случайных изменений
- **🎯 Полная структуризация**: стандартизированный формат документов
- **✨ Комплексная очистка**: удаление всех артефактов КонсультантПлюс
- **📊 Расширенные метаданные**: качественная оценка обработки
### 🖥️ Интерфейсы
- **CLI**: мощный командный интерфейс
- **GUI**: удобное графическое приложение
- **API**: программный доступ ко всем функциям
### 📈 Отчетность и качество
- **Детальные отчеты**: статистика обработки и качества
- **Метрики качества**: high/medium/low оценки
- **Прогресс**: отслеживание выполнения операций
## 🚀 Быстрый старт
### Установка
```bash
# Из PyPI (рекомендуемо)
pip install docxmd-converter
# Или локально для разработки
git clone https://github.com/we256681/docxmd_converter.git
cd docxmd_converter && pip install -e .
```
**Важно**: Требуется установленный [Pandoc](https://pandoc.org/).
#### Установка Pandoc
**Ubuntu/Debian:**
```bash
sudo apt-get install pandoc
```
**macOS:**
```bash
brew install pandoc
```
**Windows:**
```bash
choco install pandoc
# или скачайте с pandoc.org
```
### Примеры использования
#### 🎯 Рекомендуемое использование (Enhanced процессор v2.1.0)
```bash
# Безопасное тестирование в специальной папке
docxmd --src ./docs/Conversion --dst ./docs/Conversion --format docx2md --processor enhanced --post-process
# Полная конвертация с передовой пост-обработкой
docxmd --src ./documents --dst ./markdown --format docx2md --processor enhanced --post-process
# Принудительная переобработка всех файлов (осторожно!)
docxmd --src ./documents --dst ./markdown --format docx2md --processor enhanced --post-process --force-process
```
#### 📋 Базовые операции
```bash
# Простая конвертация без обработки
docxmd --src ./documents --dst ./markdown --format docx2md
# Обратная конвертация с шаблоном
docxmd --src ./markdown --dst ./documents --format md2docx --template ./template.docx
# Подробный вывод
docxmd --src ./input --dst ./output --format docx2md --verbose
```
#### ⚙️ Типы пост-процессоров
```bash
# Enhanced (рекомендуемый) - полная очистка и структурирование
--processor enhanced
# Advanced - продвинутая обработка
--processor advanced
# Basic - базовая очистка
--processor basic
```
## � Что делает Enhanced процессор
### ✅ Очистка артефактов
- Удаляет все следы КонсультантПлюс и других систем
- Очищает обратные слеши и неправильные переносы
- Исправляет сломанную пунктуацию и форматирование
### 🏗️ Структурирование документов
- Создает единый формат для всех должностных инструкций:
```markdown
# Должностная инструкция: Название_должности
## Информация о документе
## 1. Общие положения
## 2. Функции
## 3. Должностные обязанности
## 4. Права
## 5. Ответственность
## 6. Заключительные положения
## 7. Согласование и утверждение
```
### 🎯 Интеллектуальные возможности
- **Распознавание контента**: определяет должностные инструкции по содержимому
- **Пропуск нерелевантных файлов**: не обрабатывает документацию и конфигурации
- **Исправление полей**: унифицирует поля заполнения в формат `` `____________________________` ``
- **Склеивание разбитых строк**: восстанавливает целостность текста
## 🔧 Программное использование
```python
from docxmd_converter import DocxMdConverter
from docxmd_converter.enhanced_processor import EnhancedDocumentProcessor
# Безопасное тестирование
converter = DocxMdConverter()
converter.convert_directory(
src_dir="./docs/Conversion",
dst_dir="./docs/Conversion",
format="docx2md",
post_process=True,
processor_type="enhanced"
)
# Продакшн конвертация с полной пост-обработкой
converter.convert_directory(
src_dir="./documents",
dst_dir="./markdown",
format="docx2md",
post_process=True,
processor_type="enhanced"
)
# Только пост-обработка существующих файлов
processor = EnhancedDocumentProcessor()
results = processor.process_directory("./docs/Conversion")
print(f"Обработано: {results.processed}/{results.total}")
print(f"Пропущено: {results.skipped}, Ошибок: {results.errors}")
print(f"Качество: {results.quality_stats}")
```
## 📋 GUI Приложение
```bash
# Запуск графического интерфейса
docxmd-gui
```
Или программно:
```python
from docxmd_converter.gui import main
main()
```
## 🔍 Поиск проблем
### Частые проблемы
**Pandoc не найден:**
```bash
# Проверьте установку
pandoc --version
# Ubuntu/Debian
sudo apt-get install pandoc
# Или обновите PATH
```
**Ошибки кодировки:**
```bash
# Используйте параметр verbose для диагностики
docxmd --src ./input --dst ./output --format docx2md --verbose
```
**Пропускаются файлы:**
```bash
# Принудительная обработка
docxmd --src ./input --dst ./output --format docx2md --processor enhanced --post-process --force-process
```
## � Связанные документы
- [CHANGELOG.md](CHANGELOG.md) - история изменений
- [docs/documentation_management/Rules.md](docs/documentation_management/Rules.md) - правила документации
- [examples/](examples/) - примеры использования
- [tests/](tests/) - тесты
## 🤝 Вклад в проект
1. Изучите [правила документации](docs/documentation_management/Rules.md)
2. Создайте форк проекта
3. Создайте ветку для изменений
4. Добавьте тесты для новых функций
5. Убедитесь, что тесты проходят
6. Создайте Pull Request
## 📄 Лицензия
MIT License - подробности в [LICENSE](LICENSE).
## 🚀 Финализация в версии 2.1.0
### ✅ Завершена полная интеграция
- **Единая архитектура**: объединены все лучшие решения из scripts/
- **Enhanced процессор v2.1.0**: финальная версия с комплексной обработкой
- **Безопасность**: защита документации от случайных изменений
- **Тестирование**: папка docs/Conversion/ для безопасных экспериментов
- **Очищенный код**: удалена директория scripts/, все интегрировано
### 🛡️ Безопасная обработка документов
- **Защита системных файлов**: автоматический пропуск .py, .json, .yml файлов
- **Защита документации**: исключение docs/documentation_management/
- **Интеллектуальный анализ**: обработка только должностных инструкций
- **Архивирование**: старые скрипты сохранены в archive/scripts_backup/
---
**Статус проекта**: ✅ Активная разработка
**Поддерживаемые версии Python**: 3.8+
**Платформы**: Windows, macOS, Linux
<!-- METADATA
{
"created_at": "2025-08-09",
"updated_at": "2025-08-09",
"author": "BAS-Core Team",
"version": "2.1.0",
"status": "current",
"category": "guide",
"integration_status": "completed",
"scripts_migration": "completed_and_archived"
}
-->
Raw data
{
"_id": null,
"home_page": null,
"name": "docxmd-converter",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "docx, markdown, converter, pandoc, office, documentation, post-processing, document-cleaning, text-processing",
"author": null,
"author_email": "we256681 <we256681@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/61/95/f045da11444a982942dbed4b7e077d1a57923851d221a2311103422b2fba/docxmd_converter-3.0.0.tar.gz",
"platform": null,
"description": "# DocxMD Converter\n\n[](https://badge.fury.io/py/docxmd-converter)\n[](https://www.python.org/downloads/)\n[](https://opensource.org/licenses/MIT)\n\n\u041c\u043e\u0449\u043d\u044b\u0439 Python \u043f\u0430\u043a\u0435\u0442 \u0434\u043b\u044f \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u0438 \u043c\u0435\u0436\u0434\u0443 Microsoft Word (.docx) \u0438 Markdown (.md) \u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432, \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439 \u0438 **\u043f\u0435\u0440\u0435\u0434\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u043f\u043e\u0441\u0442-\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432**.\n\n## \u2728 \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438\n\n### \ud83d\udd04 \u041a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u044f\n- **\u0414\u0432\u0443\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u0430\u044f \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u044f**: `.docx` \u21c4 `.md`\n- **\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432**: \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0435 .docx \u0448\u0430\u0431\u043b\u043e\u043d\u044b\n- **\u0420\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u0430\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430**: \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0439\u0442\u0435 \u0446\u0435\u043b\u044b\u0435 \u0434\u0435\u0440\u0435\u0432\u044c\u044f \u043f\u0430\u043f\u043e\u043a\n- **\u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b**: \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u044f \u043f\u0430\u043f\u043e\u043a \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u043d\u043e\u0439\n\n### \ud83e\udde0 \u0424\u0438\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f - Enhanced \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 v2.1.0\n- **\ud83d\ude80 \u0415\u0434\u0438\u043d\u0430\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430**: \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u044b \u0432\u0441\u0435 \u043b\u0443\u0447\u0448\u0438\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\n- **\ud83d\udccb \u0418\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0435 \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u0435**: \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e\u0441\u0442\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439\n- **\ud83d\udee1\ufe0f \u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u0430\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430**: \u0437\u0430\u0449\u0438\u0442\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043e\u0442 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439\n- **\ud83c\udfaf \u041f\u043e\u043b\u043d\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0437\u0430\u0446\u0438\u044f**: \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432\n- **\u2728 \u041a\u043e\u043c\u043f\u043b\u0435\u043a\u0441\u043d\u0430\u044f \u043e\u0447\u0438\u0441\u0442\u043a\u0430**: \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432 \u041a\u043e\u043d\u0441\u0443\u043b\u044c\u0442\u0430\u043d\u0442\u041f\u043b\u044e\u0441\n- **\ud83d\udcca \u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0435 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435**: \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u043e\u0446\u0435\u043d\u043a\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438\n\n### \ud83d\udda5\ufe0f \u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b\n- **CLI**: \u043c\u043e\u0449\u043d\u044b\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\n- **GUI**: \u0443\u0434\u043e\u0431\u043d\u043e\u0435 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\n- **API**: \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a\u043e \u0432\u0441\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\n\n### \ud83d\udcc8 \u041e\u0442\u0447\u0435\u0442\u043d\u043e\u0441\u0442\u044c \u0438 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e\n- **\u0414\u0435\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043e\u0442\u0447\u0435\u0442\u044b**: \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430\n- **\u041c\u0435\u0442\u0440\u0438\u043a\u0438 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430**: high/medium/low \u043e\u0446\u0435\u043d\u043a\u0438\n- **\u041f\u0440\u043e\u0433\u0440\u0435\u0441\u0441**: \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439\n\n## \ud83d\ude80 \u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u0441\u0442\u0430\u0440\u0442\n\n### \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430\n\n```bash\n# \u0418\u0437 PyPI (\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c\u043e)\npip install docxmd-converter\n\n# \u0418\u043b\u0438 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438\ngit clone https://github.com/we256681/docxmd_converter.git\ncd docxmd_converter && pip install -e .\n```\n\n**\u0412\u0430\u0436\u043d\u043e**: \u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 [Pandoc](https://pandoc.org/).\n\n#### \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 Pandoc\n\n**Ubuntu/Debian:**\n```bash\nsudo apt-get install pandoc\n```\n\n**macOS:**\n```bash\nbrew install pandoc\n```\n\n**Windows:**\n```bash\nchoco install pandoc\n# \u0438\u043b\u0438 \u0441\u043a\u0430\u0447\u0430\u0439\u0442\u0435 \u0441 pandoc.org\n```\n\n### \u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f\n\n#### \ud83c\udfaf \u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 (Enhanced \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 v2.1.0)\n\n```bash\n# \u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u0430\u043f\u043a\u0435\ndocxmd --src ./docs/Conversion --dst ./docs/Conversion --format docx2md --processor enhanced --post-process\n\n# \u041f\u043e\u043b\u043d\u0430\u044f \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u044f \u0441 \u043f\u0435\u0440\u0435\u0434\u043e\u0432\u043e\u0439 \u043f\u043e\u0441\u0442-\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439\ndocxmd --src ./documents --dst ./markdown --format docx2md --processor enhanced --post-process\n\n# \u041f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0432\u0441\u0435\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 (\u043e\u0441\u0442\u043e\u0440\u043e\u0436\u043d\u043e!)\ndocxmd --src ./documents --dst ./markdown --format docx2md --processor enhanced --post-process --force-process\n```\n\n#### \ud83d\udccb \u0411\u0430\u0437\u043e\u0432\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438\n\n```bash\n# \u041f\u0440\u043e\u0441\u0442\u0430\u044f \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u044f \u0431\u0435\u0437 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438\ndocxmd --src ./documents --dst ./markdown --format docx2md\n\n# \u041e\u0431\u0440\u0430\u0442\u043d\u0430\u044f \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u044f \u0441 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u043c\ndocxmd --src ./markdown --dst ./documents --format md2docx --template ./template.docx\n\n# \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0439 \u0432\u044b\u0432\u043e\u0434\ndocxmd --src ./input --dst ./output --format docx2md --verbose\n```\n\n#### \u2699\ufe0f \u0422\u0438\u043f\u044b \u043f\u043e\u0441\u0442-\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u0432\n\n```bash\n# Enhanced (\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c\u044b\u0439) - \u043f\u043e\u043b\u043d\u0430\u044f \u043e\u0447\u0438\u0441\u0442\u043a\u0430 \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\n--processor enhanced\n\n# Advanced - \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u0430\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430\n--processor advanced\n\n# Basic - \u0431\u0430\u0437\u043e\u0432\u0430\u044f \u043e\u0447\u0438\u0441\u0442\u043a\u0430\n--processor basic\n```\n\n## \ufffd \u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 Enhanced \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\n\n### \u2705 \u041e\u0447\u0438\u0441\u0442\u043a\u0430 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432\n- \u0423\u0434\u0430\u043b\u044f\u0435\u0442 \u0432\u0441\u0435 \u0441\u043b\u0435\u0434\u044b \u041a\u043e\u043d\u0441\u0443\u043b\u044c\u0442\u0430\u043d\u0442\u041f\u043b\u044e\u0441 \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\n- \u041e\u0447\u0438\u0449\u0430\u0435\u0442 \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u0435 \u0441\u043b\u0435\u0448\u0438 \u0438 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u044b\n- \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043b\u043e\u043c\u0430\u043d\u043d\u0443\u044e \u043f\u0443\u043d\u043a\u0442\u0443\u0430\u0446\u0438\u044e \u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\n\n### \ud83c\udfd7\ufe0f \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432\n- \u0421\u043e\u0437\u0434\u0430\u0435\u0442 \u0435\u0434\u0438\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0434\u043e\u043b\u0436\u043d\u043e\u0441\u0442\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439:\n ```markdown\n # \u0414\u043e\u043b\u0436\u043d\u043e\u0441\u0442\u043d\u0430\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f: \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435_\u0434\u043e\u043b\u0436\u043d\u043e\u0441\u0442\u0438\n\n ## \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0435\n ## 1. \u041e\u0431\u0449\u0438\u0435 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f\n ## 2. \u0424\u0443\u043d\u043a\u0446\u0438\u0438\n ## 3. \u0414\u043e\u043b\u0436\u043d\u043e\u0441\u0442\u043d\u044b\u0435 \u043e\u0431\u044f\u0437\u0430\u043d\u043d\u043e\u0441\u0442\u0438\n ## 4. \u041f\u0440\u0430\u0432\u0430\n ## 5. \u041e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u044c\n ## 6. \u0417\u0430\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f\n ## 7. \u0421\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435\n ```\n\n### \ud83c\udfaf \u0418\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438\n- **\u0420\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430**: \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0434\u043e\u043b\u0436\u043d\u043e\u0441\u0442\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043f\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u043c\u0443\n- **\u041f\u0440\u043e\u043f\u0443\u0441\u043a \u043d\u0435\u0440\u0435\u043b\u0435\u0432\u0430\u043d\u0442\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432**: \u043d\u0435 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438\n- **\u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u0435\u0439**: \u0443\u043d\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u0442 \u043f\u043e\u043b\u044f \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0432 \u0444\u043e\u0440\u043c\u0430\u0442 `` `____________________________` ``\n- **\u0421\u043a\u043b\u0435\u0438\u0432\u0430\u043d\u0438\u0435 \u0440\u0430\u0437\u0431\u0438\u0442\u044b\u0445 \u0441\u0442\u0440\u043e\u043a**: \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0446\u0435\u043b\u043e\u0441\u0442\u043d\u043e\u0441\u0442\u044c \u0442\u0435\u043a\u0441\u0442\u0430\n\n## \ud83d\udd27 \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\n\n```python\nfrom docxmd_converter import DocxMdConverter\nfrom docxmd_converter.enhanced_processor import EnhancedDocumentProcessor\n\n# \u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\nconverter = DocxMdConverter()\nconverter.convert_directory(\n src_dir=\"./docs/Conversion\",\n dst_dir=\"./docs/Conversion\",\n format=\"docx2md\",\n post_process=True,\n processor_type=\"enhanced\"\n)\n\n# \u041f\u0440\u043e\u0434\u0430\u043a\u0448\u043d \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u044f \u0441 \u043f\u043e\u043b\u043d\u043e\u0439 \u043f\u043e\u0441\u0442-\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439\nconverter.convert_directory(\n src_dir=\"./documents\",\n dst_dir=\"./markdown\",\n format=\"docx2md\",\n post_process=True,\n processor_type=\"enhanced\"\n)\n\n# \u0422\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u0442-\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432\nprocessor = EnhancedDocumentProcessor()\nresults = processor.process_directory(\"./docs/Conversion\")\nprint(f\"\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043e: {results.processed}/{results.total}\")\nprint(f\"\u041f\u0440\u043e\u043f\u0443\u0449\u0435\u043d\u043e: {results.skipped}, \u041e\u0448\u0438\u0431\u043e\u043a: {results.errors}\")\nprint(f\"\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e: {results.quality_stats}\")\n```\n\n## \ud83d\udccb GUI \u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\n\n```bash\n# \u0417\u0430\u043f\u0443\u0441\u043a \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\ndocxmd-gui\n```\n\n\u0418\u043b\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e:\n```python\nfrom docxmd_converter.gui import main\nmain()\n```\n\n## \ud83d\udd0d \u041f\u043e\u0438\u0441\u043a \u043f\u0440\u043e\u0431\u043b\u0435\u043c\n\n### \u0427\u0430\u0441\u0442\u044b\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b\n\n**Pandoc \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d:**\n```bash\n# \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443\npandoc --version\n\n# Ubuntu/Debian\nsudo apt-get install pandoc\n\n# \u0418\u043b\u0438 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u0435 PATH\n```\n\n**\u041e\u0448\u0438\u0431\u043a\u0438 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0438:**\n```bash\n# \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 verbose \u0434\u043b\u044f \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0438\ndocxmd --src ./input --dst ./output --format docx2md --verbose\n```\n\n**\u041f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u044e\u0442\u0441\u044f \u0444\u0430\u0439\u043b\u044b:**\n```bash\n# \u041f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430\ndocxmd --src ./input --dst ./output --format docx2md --processor enhanced --post-process --force-process\n```\n\n## \ufffd \u0421\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b\n\n- [CHANGELOG.md](CHANGELOG.md) - \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439\n- [docs/documentation_management/Rules.md](docs/documentation_management/Rules.md) - \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438\n- [examples/](examples/) - \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f\n- [tests/](tests/) - \u0442\u0435\u0441\u0442\u044b\n\n## \ud83e\udd1d \u0412\u043a\u043b\u0430\u0434 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\n\n1. \u0418\u0437\u0443\u0447\u0438\u0442\u0435 [\u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438](docs/documentation_management/Rules.md)\n2. \u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0444\u043e\u0440\u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0430\n3. \u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0432\u0435\u0442\u043a\u0443 \u0434\u043b\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439\n4. \u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0442\u0435\u0441\u0442\u044b \u0434\u043b\u044f \u043d\u043e\u0432\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439\n5. \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0442\u0435\u0441\u0442\u044b \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0442\n6. \u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 Pull Request\n\n## \ud83d\udcc4 \u041b\u0438\u0446\u0435\u043d\u0437\u0438\u044f\n\nMIT License - \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0432 [LICENSE](LICENSE).\n\n## \ud83d\ude80 \u0424\u0438\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0432 \u0432\u0435\u0440\u0441\u0438\u0438 2.1.0\n\n### \u2705 \u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430 \u043f\u043e\u043b\u043d\u0430\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f\n- **\u0415\u0434\u0438\u043d\u0430\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430**: \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u044b \u0432\u0441\u0435 \u043b\u0443\u0447\u0448\u0438\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0438\u0437 scripts/\n- **Enhanced \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 v2.1.0**: \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u0441 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0441\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439\n- **\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c**: \u0437\u0430\u0449\u0438\u0442\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043e\u0442 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439\n- **\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435**: \u043f\u0430\u043f\u043a\u0430 docs/Conversion/ \u0434\u043b\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0445 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u043e\u0432\n- **\u041e\u0447\u0438\u0449\u0435\u043d\u043d\u044b\u0439 \u043a\u043e\u0434**: \u0443\u0434\u0430\u043b\u0435\u043d\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f scripts/, \u0432\u0441\u0435 \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043e\n\n### \ud83d\udee1\ufe0f \u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u0430\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432\n- **\u0417\u0430\u0449\u0438\u0442\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432**: \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0440\u043e\u043f\u0443\u0441\u043a .py, .json, .yml \u0444\u0430\u0439\u043b\u043e\u0432\n- **\u0417\u0430\u0449\u0438\u0442\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438**: \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 docs/documentation_management/\n- **\u0418\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u0438\u0437**: \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043e\u043b\u0436\u043d\u043e\u0441\u0442\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439\n- **\u0410\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435**: \u0441\u0442\u0430\u0440\u044b\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u044b \u0432 archive/scripts_backup/\n\n---\n\n**\u0421\u0442\u0430\u0442\u0443\u0441 \u043f\u0440\u043e\u0435\u043a\u0442\u0430**: \u2705 \u0410\u043a\u0442\u0438\u0432\u043d\u0430\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430\n**\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 Python**: 3.8+\n**\u041f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b**: Windows, macOS, Linux\n\n<!-- METADATA\n{\n \"created_at\": \"2025-08-09\",\n \"updated_at\": \"2025-08-09\",\n \"author\": \"BAS-Core Team\",\n \"version\": \"2.1.0\",\n \"status\": \"current\",\n \"category\": \"guide\",\n \"integration_status\": \"completed\",\n \"scripts_migration\": \"completed_and_archived\"\n}\n-->\n",
"bugtrack_url": null,
"license": null,
"summary": "Convert between .docx and .md files with template support and advanced document post-processing",
"version": "3.0.0",
"project_urls": {
"Bug Reports": "https://github.com/we256681/docxmd_converter/issues",
"Documentation": "https://github.com/we256681/docxmd_converter#readme",
"Homepage": "https://github.com/we256681/docxmd_converter",
"Source": "https://github.com/we256681/docxmd_converter"
},
"split_keywords": [
"docx",
" markdown",
" converter",
" pandoc",
" office",
" documentation",
" post-processing",
" document-cleaning",
" text-processing"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "c82c5041c319c3e7934a0f0fda9c1e8ffb8229bdbe0847e193aa481e086bd0b5",
"md5": "4aa63d5ad3071f3647375ce38a4b5bdf",
"sha256": "977b367e6b2dd53fc4ff075c9d922e1a827f9110bdb52170b01e0d29be9596b2"
},
"downloads": -1,
"filename": "docxmd_converter-3.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "4aa63d5ad3071f3647375ce38a4b5bdf",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 33902,
"upload_time": "2025-08-09T08:16:58",
"upload_time_iso_8601": "2025-08-09T08:16:58.551696Z",
"url": "https://files.pythonhosted.org/packages/c8/2c/5041c319c3e7934a0f0fda9c1e8ffb8229bdbe0847e193aa481e086bd0b5/docxmd_converter-3.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "6195f045da11444a982942dbed4b7e077d1a57923851d221a2311103422b2fba",
"md5": "a42b5bf81ac0f087957ebb024ca6c597",
"sha256": "c2e040824337d75f8f3e9a1008a451b208a8230dbb5536668a5bf1997d6be1c7"
},
"downloads": -1,
"filename": "docxmd_converter-3.0.0.tar.gz",
"has_sig": false,
"md5_digest": "a42b5bf81ac0f087957ebb024ca6c597",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 36145,
"upload_time": "2025-08-09T08:17:00",
"upload_time_iso_8601": "2025-08-09T08:17:00.468388Z",
"url": "https://files.pythonhosted.org/packages/61/95/f045da11444a982942dbed4b7e077d1a57923851d221a2311103422b2fba/docxmd_converter-3.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-09 08:17:00",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "we256681",
"github_project": "docxmd_converter",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "pypandoc",
"specs": [
[
">=",
"1.11"
]
]
},
{
"name": "python-docx",
"specs": [
[
">=",
"0.8.11"
]
]
},
{
"name": "pytest",
"specs": [
[
">=",
"7.0"
]
]
},
{
"name": "pytest-cov",
"specs": [
[
">=",
"4.0"
]
]
},
{
"name": "black",
"specs": [
[
">=",
"22.0"
]
]
},
{
"name": "isort",
"specs": [
[
">=",
"5.0"
]
]
},
{
"name": "flake8",
"specs": [
[
">=",
"6.0"
]
]
},
{
"name": "mypy",
"specs": [
[
">=",
"1.0"
]
]
}
],
"lcname": "docxmd-converter"
}