MD Reader is a comprehensive tool for viewing and editing Markdown documents. It includes both a command-line interface (CLI) for browsing documentation and a web-based editor for creating and modifying Markdown files.
- Interactive viewing of Markdown files and directories
- Automatic table of contents generation
- Fuzzy search through headers
- Syntax-highlighted section viewing
- Caching for improved performance
- Security enhancements (path validation, input sanitization)
- Modern web-based editor with real-time preview
- Syntax highlighting for code blocks
- Automatic table of contents navigation
- Auto-save functionality
- Drag-and-drop file support
- Fully localized Russian interface
- Responsive design for all devices
- User Guide (English) - Complete guide for using MD Reader
- Руководство пользователя (Russian) - Полное руководство по использованию MD Reader
- Specification (English) - Technical specification of the project
- Спецификация (Russian) - Техническая спецификация проекта
- README_ENHANCED.md - Enhanced security and reliability features
- PROJECT_COMPLETION_SUMMARY.md - Project completion summary
- md_reader CLI documentation - Documentation for the command-line interface
- web_editor documentation - Documentation for the web editor
# Clone the repository
git clone <repository-url>
cd md_reader
# Install in development mode
pip install -e .
# For development (includes testing tools)
pip install -e ".[dev]"# View a single file in interactive mode
md-viewer open document.md
# View all files in a directory
md-viewer open /path/to/markdown/files
# Launch TUI interface
md-viewer tui /path/to/markdown/files# Navigate to the web editor directory
cd web_editor
# Run the editor
python run.pymd_reader/
├── md_reader/ # Core CLI library
├── web_editor/ # Web-based editor
├── docs/ # Documentation
├── tests/ # Test suite
├── dist/ # Compiled executables
└── README.md # This file
This project is licensed under the MIT License - see the LICENSE file for details.
- 🌐 Веб-интерфейс с разделенным экраном (редактор + предпросмотр)
- 📝 Редактирование и предпросмотр Markdown в реальном времени
- 💾 Сохранение и загрузка файлов
- 📁 Управление множественными файлами
- 🎨 Современный и удобный интерфейс
- 🇷🇺 Полная локализация на русский язык
- 📦 Возможность компиляции в исполняемый файл (.exe)
- 📂 Выбор локальных файлов - загрузка .md и .txt файлов с компьютера
- 🖱️ Drag-and-Drop - перетаскивание файлов в редактор
- 📤 Экспорт документов - HTML и TXT форматы
- 🔍 Синтаксическая подсветка кода с Prism.js
- ⚡ Быстрый запуск - автономный EXE без установки Python
- 📂 Выбор локальных файлов - загрузка .md и .txt файлов с компьютера
- 🖱️ Drag-and-Drop - перетаскивание файлов в редактор
- 📤 Экспорт в HTML - сохранение документов с форматированием
- 📝 Экспорт в TXT - очистка Markdown синтаксиса
- 🔍 Синтаксическая подсветка - Prism.js для блоков кода
- ⚡ Автономный EXE - готовый исполняемый файл без Python
- Обновлённые зависимости - Flask 3.1.2, PyInstaller 6.15.0
- Виртуальное окружение - изолированная среда сборки
- Улучшенная архитектура - RESTful API для управления файлами
- HTML5 APIs - File API, Drag-and-Drop, Blob API
- Стильная кнопка выбора файла с иконкой
- Визуальная обратная связь при перетаскивании
- Индикатор несохранённых изменений (красная точка)
- Счётчик слов в статусной строке
- Модальные окна для создания файлов
``bash
pip install -r requirements.txt
python app.py
### Метод 2: Демонстрационная версия
``bash
# Запуск упрощенной версии (без Flask)
python run_demo.py
``bash
.\dist\MarkdownEditor.exe
### Метод 4: Сборка из исходников
``bash
# Базовая сборка
build.bat
# Расширенная сборка (рекомендуется)
build_advanced.bat
Если при запуске MarkdownEditor.exe браузер открывается многократно:
- Используйте улучшенную версию - в
app.pyдобавлены защитные механизмы - Переменная окружения - приложение использует
BROWSER_OPENEDдля предотвращения повторных запусков - Запуск в режиме отладки:
set BROWSER_OPENED=true MarkdownEditor.exe
- Проверьте порт - приложение автоматически находит свободный порт
- Брандмауэр - убедитесь, что брандмауэр не блокирует соединение
- Антивирус - добавьте приложение в исключения
- Альтернативный запуск:
python run_demo.py
-
Обновите PyInstaller:
pip install --upgrade pyinstaller
-
Используйте базовую сборку:
pyinstaller --onefile --add-data="templates;templates" --add-data="static;static" app.py
-
Проверьте зависимости:
pip install -r requirements.txt --force-reinstall
md_reader/
├── app.py # Основное приложение Flask с API
├── run_demo.py # Демонстрационная версия
├── requirements.txt # Зависимости Python
├── build.bat # Скрипт сборки с виртуальным окружением
├── build_advanced.bat # Расширенный скрипт сборки
├── readme.md # Основная документация
├── README_ENHANCED.md # Расширенная документация
├── templates/
│ └── index.html # HTML шаблон с полным интерфейсом
├── static/ # Статические файлы (создается автоматически)
├── markdown_files/ # Папка для Markdown файлов (создается автоматически)
├── dist/
│ ├── MarkdownEditor.exe # Автономный исполняемый файл
│ └── MarkdownEditor_old.exe # Предыдущая версия
└── venv/ # Виртуальное окружение Python
- Flask 3.1.2 - веб-фреймворк с улучшенной производительностью
- PyInstaller 6.15.0 - для создания автономных EXE файлов
- Marked.js 4.0.10 - обработка Markdown на клиенте
- Prism.js 1.29.0 - синтаксическая подсветка кода
- File API: Использование HTML5 File API для чтения локальных файлов
- FileReader: Асинхронное чтение содержимого файлов
- Валидация: Проверка типов файлов (.md, .txt) и размера
- Drag-and-Drop: HTML5 Drag and Drop API для удобной загрузки
- HTML экспорт: Генерация полностраничного HTML с CSS стилями
- TXT экспорт: Очистка Markdown синтаксиса с сохранением структуры
- Blob API: Создание и скачивание файлов через браузер
- Автоматическое именование: Умное именование экспортированных файлов
- RESTful API: Полноценное API для управления файлами
- Виртуальное окружение: Изолированная среда Python
- Автономная сборка: EXE без зависимостей от системного Python
Приложение включает несколько механизмов защиты:
- Проверка frozen состояния - определение запуска как EXE
- Переменная окружения -
BROWSER_OPENEDпредотвращает повторные запуски - Multiprocessing.freeze_support() - поддержка многопроцессности в EXE
- Проверка порта - автоматический поиск свободного порта
- Создаются в папке
markdown_files/ - Автоматическое создание демонстрационного файла
- Поддержка полного синтаксиса Markdown
- Автосохранение изменений
- Запустите приложение любым из способов выше
- Откроется браузер с интерфейсом редактора
- Выберите файл из списка в боковой панели или создайте новый
- Загрузите локальный файл:
- Нажмите кнопку "📁 Выбрать файл" в панели инструментов
- Или перетащите .md/.txt файл в область редактора
- Редактируйте в левой панели, просматривайте в правой
- Экспортируйте документ кнопками "Экспорт HTML" или "Экспорт TXT"
- Сохраняйте изменения кнопкой "Сохранить" или Ctrl+S
- Выбор файла: Кнопка "📁 Выбрать файл" открывает диалог выбора
- Drag-and-Drop: Перетащите файл в область редактора для мгновенной загрузки
- Поддержка форматов: .md (Markdown) и .txt (обычный текст)
- Предупреждения: Система предупредит о несохранённых изменениях
- Только чтение: Локальные файлы нельзя сохранить на сервер (работают локально)
- HTML экспорт: Сохраняет документ с полным форматированием и стилями
- TXT экспорт: Удаляет Markdown синтаксис, оставляя чистый текст
- Автоматическое скачивание: Файлы автоматически скачиваются в папку загрузок
Ctrl + S- Сохранить файлCtrl + N- Новый файл (в планах)
При возникновении проблем:
- Проверьте логи в консоли
- Попробуйте демонстрационную версию
- Пересоберите EXE с чистого окружения
- Убедитесь в корректности установки зависимостей
MIT License - свободное использование и модификация.