learning-rust/tauri-app/README.md

4.9 KiB
Raw Permalink Blame History

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 多协议远程同步

快速开始

前置要求

开发运行

# 安装前端依赖
pnpm install

# 启动开发模式(前端 + Tauri 窗口)
pnpm tauri dev

# 仅启动前端(浏览器调试)
pnpm dev

构建打包

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基础编辑器

  • 项目初始化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