Skip to content

Repository files navigation

Markdown Editor 0.1 с поддержкой LaTeX

Современный редактор Markdown с поддержкой LaTeX формул, синтаксической подсветкой и темной темой.

📋 Описание

Markdown Editor - это полнофункциональный редактор для создания и редактирования Markdown документов с возможностью предварительного просмотра в реальном времени. Приложение построено на PyQt5 и предоставляет удобный интерфейс для работы с текстом в формате Markdown.

✨ Основные возможности

📝 Редактирование

  • Редактор с номерами строк - удобная навигация по документу
  • Моноширинный шрифт Consolas - четкое отображение текста как в блокноте
  • Подсветка текущей строки - визуальное выделение активной строки
  • Стандартные горячие клавиши - Ctrl+C, Ctrl+V, Ctrl+Z, Ctrl+Y и др.

🔍 Предварительный просмотр

  • Живой предварительный просмотр - обновление в реальном времени
  • Синхронизация прокрутки - пропорциональная прокрутка между редактором и превью
  • Поддержка изображений - отображение локальных и веб-изображений
  • Адаптивный дизайн - контент занимает всю ширину окна

🧮 LaTeX формулы

  • Inline формулы: $формула$ и \(формула\)
  • Display формулы: $$формула$$ и \[формула\]
  • Одиночные LaTeX команды: \text{текст}, \frac{a}{b}, \vec{a} и др.
  • Расширенные пакеты: ams, color, cancel, mhchem и другие
  • MathJax 3 - современная библиотека для рендеринга математики

🎨 Темы оформления

  • Светлая тема - классический белый фон
  • Темная тема - современный темный интерфейс
  • Автоматическое переключение стилей для всех элементов
  • Сохранение настроек между сессиями

🌐 Кодировки

  • Автоматическое определение кодировки файла
  • Поддержка кириллицы: UTF-8, Windows-1251, KOI8-R
  • Ручное переключение кодировки через меню
  • Безопасное чтение файлов с некорректной кодировкой

💻 Подсветка синтаксиса кода

  • Автоматическое определение языка программирования
  • Поддержка популярных языков: Python, JavaScript, C++, Rust, Go и др.
  • Цветовые схемы: Visual Studio (светлая), VS Code Dark+ (темная)
  • Pygments для качественной подсветки

🏗️ Архитектура проекта

markdown-editor/
├── main.py              # Точка входа в приложение
├── editor.py            # Основной класс редактора
├── highlighter.py       # Подсветка синтаксиса Markdown
├── widgets.py           # Пользовательские виджеты
├── __init__.py          # Инициализация пакета
├── HISTORY.txt          # История изменений
├── LICENSE              # Лицензия GPL v3
└── README.md            # Документация проекта

Модули

main.py

  • Точка входа в приложение
  • Инициализация QApplication
  • Создание и запуск главного окна

editor.py - MarkdownEditor

Основной класс приложения, содержащий:

  • Создание интерфейса (меню, панели, сплиттер)
  • Обработка файловых операций
  • Конвертация Markdown в HTML
  • Обработка LaTeX формул
  • Управление темами и кодировками
  • Синхронизация прокрутки

widgets.py - TextEditWithLineNumbers

Расширенный текстовый редактор:

  • Отображение номеров строк
  • Подсветка текущей строки
  • Адаптация под темы оформления
  • Обработка событий прокрутки и изменения размера

highlighter.py - MarkdownHighlighter

Подсветка синтаксиса Markdown:

  • Заголовки, жирный текст, курсив
  • Блоки кода и inline код
  • Ссылки, цитаты, списки
  • Поддержка светлой и темной тем

🚀 Установка и запуск

Требования

  • Python 3.7+
  • PyQt5
  • PyQtWebEngine
  • markdown
  • chardet
  • Pygments

Установка зависимостей

# Установка пакетов
pip install PyQt5 PyQtWebEngine markdown chardet Pygments

Запуск

python main.py

📖 Использование

Основные операции

  • Создать новый файл: Ctrl+N
  • Открыть файл: Ctrl+O
  • Сохранить: Ctrl+S
  • Сохранить как: Ctrl+Shift+S
  • Переключить превью: F11
  • Темная тема: Ctrl+D

Работа с LaTeX

Поддерживаются различные способы записи формул:

Inline формулы

Формула в тексте: $E = mc^2$ или \(F = ma\)

Display формулы

Отдельная формула:
$$\int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}$$

или

\[
\sum_{n=1}^{\infty} \frac{1}{n^2} = \frac{\pi^2}{6}
\]

Одиночные команды

Текст с \text{обычным текстом} в формуле
Дробь: \frac{a}{b}
Вектор: \vec{a}
Стрелка: \implies

Поддерживаемые элементы Markdown

  • Заголовки (# ## ###)
  • Жирный текст (**текст**)
  • Курсив (*текст*)
  • Inline код (`код`)
  • Блоки кода (``` или отступ 4 пробела)
  • Ссылки
  • Цитаты

  • Списки (маркированные и нумерованные)
  • Таблицы
  • Изображения

🔧 Настройки

Приложение сохраняет настройки в системном реестре:

  • Тема оформления (светлая/темная)
  • Кодировка по умолчанию
  • Размер и положение окна

📝 История версий

v0.1.0 (Текущая)

  • Модульная архитектура
  • Номера строк и подсветка текущей строки
  • Улучшенная поддержка LaTeX

v0.0.9

  • Поддержка локальных изображений
  • Адаптивная ширина контента
  • Улучшенное отображение изображений

v0.0.8

  • CSS стили для подсветки синтаксиса
  • Поддержка популярных языков программирования
  • Цветовые схемы для обеих тем

v0.0.7

  • Синхронизация прокрутки между панелями
  • Номера строк в редакторе
  • Улучшенная стилизация тем

Полная история изменений доступна в файле HISTORY.txt.

🤝 Участие в разработке

Проект распространяется под лицензией GPL v3. Вы можете:

  • Использовать код в своих проектах
  • Модифицировать и улучшать функциональность
  • Распространять изменения под той же лицензией

👨‍💻 Автор

alexsevas

📄 Лицензия

Этот проект лицензирован под GNU General Public License v3.0 - подробности в файле LICENSE.


Markdown Editor - современный инструмент для работы с документацией, заметками и техническими текстами с поддержкой математических формул.

About

Markdown Editor с поддержкой LaTeX

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages