learning-rust/tauri-app/README.md

144 lines
4.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# WriteFlow - 所见即所得的 Markdown 编辑器
> 一款基于 Tauri + Vue 3 开发的本地 Markdown 编辑器,复刻 Typora 的所见即所得体验,并加入多设备远程同步能力。
## 核心特性
- **所见即所得编辑** — 实时渲染 Markdown打字即预览告别双栏模式
- **本地优先** — 所有笔记以 `.md` 文件存储于本地文件系统,不依赖云服务即可完整使用
- **多设备同步** — 通过 S3 / WebDAV 等协议将笔记和图片自动同步到云端,多台设备无缝切换
- **跨平台** — 基于 Tauri v2原生支持 Windows、macOS、Linux
- **轻量高速** — Rust 后端 + Vue 3 前端,启动快、内存占用低
- **扩展丰富** — 支持主题切换、代码高亮、数学公式、流程图、目录大纲、导出 PDF/HTML 等
## 技术栈
| 层 | 技术 | 说明 |
|----|------|------|
| 桌面框架 | Tauri v2 | Rust 驱动,比 Electron 更轻量 |
| 前端 | Vue 3 + TypeScript | Composition API + `<script setup>` |
| UI 组件 | Naive UI | Vue3 高颜值 UI 库TypeScript 原生支持 |
| Markdown 渲染 | markdown-it / Milkdown | 所见即所得编辑与渲染 |
| 后端 | Rust (Tauri) | 文件管理、同步引擎、编辑器核心 |
| 同步协议 | S3 / WebDAV / Git | 多协议远程同步 |
## 快速开始
### 前置要求
- [Node.js](https://nodejs.org/) >= 18
- [pnpm](https://pnpm.io/) >= 8
- [Rust](https://www.rust-lang.org/) >= 1.70
- [Tauri CLI](https://tauri.app/) >= 2.0
### 开发运行
```bash
# 安装前端依赖
pnpm install
# 启动开发模式(前端 + Tauri 窗口)
pnpm tauri dev
# 仅启动前端(浏览器调试)
pnpm dev
```
### 构建打包
```bash
pnpm tauri build
```
构建产物位于 `src-tauri/target/release/bundle/`
## 项目结构
```
tauri-app/
├── index.html # 入口 HTML
├── package.json # 前端依赖与脚本
├── vite.config.ts # Vite 配置
├── tsconfig.json # TypeScript 配置
├── src/ # Vue 3 前端源码
│ ├── main.ts # Vue 应用入口
│ ├── App.vue # 根组件
│ ├── assets/ # 静态资源
│ └── components/ # 通用组件
├── src-tauri/ # Tauri (Rust) 后端源码
│ ├── Cargo.toml # Rust 依赖
│ ├── tauri.conf.json # Tauri 配置
│ ├── build.rs # 构建脚本
│ ├── icons/ # 应用图标
│ └── src/
│ ├── main.rs # Rust 入口
│ └── lib.rs # 核心逻辑
└── public/ # 公共静态资源
```
## 开发路线图
### Phase 1 — MVP基础编辑器
- [x] 项目初始化Tauri + Vue 3 + TypeScript
- [ ] 基础 Markdown 编辑器(实时预览)
- [ ] 文件树浏览与文件管理
- [ ] 本地文件读写(新建、打开、保存)
- [ ] 基础主题切换(亮色/暗色)
### Phase 2 — 同步引擎
- [ ] S3 协议同步AWS S3 / MinIO / Cloudflare R2
- [ ] 同步状态管理(冲突检测、版本对比)
- [ ] 图片资源的自动上传与链接替换
- [ ] 离线编辑 + 联网自动同步
### Phase 3 — 高级编辑功能
- [ ] 代码高亮(语法着色)
- [ ] 数学公式KaTeX / MathJax
- [ ] 表格编辑器
- [ ] Mermaid 流程图
- [ ] 目录大纲 / 文档导航
- [ ] 图片拖拽粘贴上传
- [ ] 导出 PDF / HTML / Word
### Phase 4 — 多协议同步
- [ ] WebDAV 协议支持
- [ ] Git 仓库同步
- [ ] WebRTC 局域网直连同步
- [ ] SMB / NFS 局域网共享
### Phase 5 — 体验打磨
- [ ] 多标签页管理
- [ ] 全文搜索
- [ ] 快捷键体系
- [ ] 自定义主题
- [ ] 插件系统
## 同步方案设计
### S3 协议Phase 2 首发)
```
┌──────────┐ ┌──────────┐ ┌──────────┐
│ 设备 A │ │ S3 存储 │ │ 设备 B │
│ (本地笔记) │◄──►│ (云端同步) │◄──►│ (本地笔记) │
└──────────┘ └──────────┘ └──────────┘
```
- 支持标准 S3 协议AWS S3、阿里云 OSS、腾讯云 COS、MinIO、Cloudflare R2
- 增量同步,仅上传变更文件
- 冲突策略:保留冲突副本,用户手动合并
### 未来扩展
| 协议 | 适用场景 | 优先级 |
|------|---------|--------|
| S3 | 云存储(公有云 / 私有化 MinIO | Phase 2 |
| WebDAV | 自建 NAS、云盘坚果云、NextCloud | Phase 4 |
| Git | 程序员笔记、版本追溯 | Phase 4 |
| WebRTC | 局域网极速同步,无需中转 | Phase 4 |
| SMB/NFS | 纯局域网共享,无需云端 | Phase 4 |
## License
MIT