4.9 KiB
4.9 KiB
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