Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 42 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,49 @@

Нативная desktop-обёртка для [Rewrite](https://github.com/exviolet/rewrite) на базе Tauri v2.

## Возможности
## 🚀 Возможности

### 🖥️ Нативный опыт (Tauri)
- **Файловая система**: Нативные диалоги открытия, сохранения, а также экспорта и импорта ваших файлов.
- **Интерфейс**: Кастомный title bar с поддержкой стандартных элементов управления окном (window controls).
- **Уведомления**: Глобальные системные toast-уведомления о важных событиях.
- **Удобство**: Мгновенное восстановление случайно закрытых вкладок комбинацией `Ctrl+Shift+T`.

### 📝 Мощный редактор (Rewrite Web)
- **Мультизадачность**: Полноценная поддержка вкладок (табов) для одновременной работы с несколькими документами.
- **Продвинутый поиск**: Инструмент Find & Replace для массовой обработки текста.
- **Пресеты**: Поддержка пользовательских пресетов для быстрых замен.
- **Умная работа**: Интеграция с AI Prompt Builder для автоматизации задач.
- **Визуализация**: Встроенное превью Markdown в реальном времени.

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

Структура приложения разделена на два основных компонента, где веб-версия подключается как `git submodule`:

```text
rewrite-desktop/
├── web/ # git submodule → rewrite (browser SPA)
├── src-tauri/
│ ├── src/
│ │ ├── lib.rs # Tauri entry point
│ │ └── main.rs # binary entry
│ ├── capabilities/
│ │ └── default.json # Tauri v2 permissions
│ ├── icons/ # иконки приложения
│ ├── tauri.conf.json # конфигурация Tauri
│ └── Cargo.toml
├── com.rewrite.app.desktop # .desktop файл для Linux
├── install.sh # скрипт установки
├── uninstall.sh # скрипт удаления
└── package.json
```

- Нативные файловые диалоги (открытие, сохранение, экспорт/импорт)
- Кастомный title bar с window controls
- Восстановление закрытых табов (Ctrl+Shift+T)
- Глобальные toast-уведомления
- Все возможности браузерной версии: табы, Find & Replace, пресеты замен, AI Prompt Builder, Markdown превью
### 💡 Ключевые архитектурные решения
- **Разделение репозиториев**: Браузерный SPA-клиент не смешивается с Rust/Tauri кодом, десктопное приложение развивается независимо.
- **Submodule**: Фиксирует конкретную версию web-клиента — десктоп всегда собирается от проверенного, стабильного коммита.
- **Динамическая загрузка (Dynamic import)**: Все JS-пакеты Tauri загружаются только в десктопной среде (через проверку `isTauri`), поэтому браузерная версия остаётся легковесной.
- **Безрамочный интерфейс (Decorations: false)**: Системный title bar отключён, вместо него используется встроенный TabBar с drag-region и кнопками управления окном.
- **Безопасность (Минимальные права)**: Tauri имеет доступ только к чтению и записи текстовых файлов в базовых директориях пользователя (Desktop, Documents, Downloads, Temp). Нет доступа к сети или системным процессам.

## Требования

Expand Down