# WriteFlow 产品策划开发手册 > 版本:v1.0 | 作者:产品团队 | 最后更新:2026-07 --- ## 目录 1. [产品概述](#1-产品概述) 2. [市场分析与竞品调研](#2-市场分析与竞品调研) 3. [目标用户与用户故事](#3-目标用户与用户故事) 4. [功能规划](#4-功能规划) 5. [技术架构](#5-技术架构) 6. [UI/UX 设计规范](#6-uiux-设计规范) 7. [数据结构设计](#7-数据结构设计) 8. [同步引擎设计](#8-同步引擎设计) 9. [开发排期与里程碑](#9-开发排期与里程碑) 10. [质量保障与测试策略](#10-质量保障与测试策略) 11. [发布与运营策略](#11-发布与运营策略) 12. [风险评估与应对](#12-风险评估与应对) --- ## 1. 产品概述 ### 1.1 产品定位 WriteFlow 是一款 **本地优先、所见即所得、支持多设备云同步** 的 Markdown 笔记编辑器。定位为 Typora 的现代化替代品,补齐 Typora 缺乏云同步能力、不再积极更新的短板。 ### 1.2 产品愿景 > 让每一个人在任何设备上都能获得沉浸、流畅的 Markdown 写作体验,所有内容安全可控、随处可及。 ### 1.3 核心价值主张 | 维度 | 价值 | |------|------| | 编辑体验 | 所见即所得,打字即渲染,无干扰沉浸 | | 数据主权 | 本地 .md 文件存储,不锁定数据格式 | | 多设备 | S3/WebDAV 协议打通,你自己的云存储 | | 性能 | Tauri 桌面端原生性能,秒启动、低资源 | | 可扩展 | 插件系统、多导出格式、自定义主题 | ### 1.4 产品边界 - **做什么**:Markdown 编辑、本地文件管理、多设备云同步 - **不做什么**:协作编辑(那是 Google Docs 的事)、在线 Web 版(专注桌面端)、知识图谱(那是 Obsidian 的事) --- ## 2. 市场分析与竞品调研 ### 2.1 竞品矩阵 | 产品 | 编辑模式 | 同步 | 价格 | 优势 | 劣势 | |------|---------|------|------|------|------| | **Typora** | WYSIWYG | 无内置 | $14.99 买断 | 编辑体验最好 | 停更、无同步、无插件 | | **Obsidian** | 源码+预览 | 付费 Obsidian Sync $5/月 | 免费 | 插件生态强、双链 | 学习曲线陡、非 WYSIWYG、同步收费 | | **Notion** | Block 编辑器 | 内置 | 免费+付费 | 全能协作 | 非 Markdown 原生态、云端依赖、慢 | | **VS Code** | 源码+预览 | Git | 免费 | 全能编辑器 | Markdown 非核心、体验不够专注 | | **Bear** | WYSIWYG | iCloud | 免费+订阅 | 体验精美 | 仅 Apple 生态 | | **Joplin** | 双栏 | S3/WebDAV/NextCloud 等 | 免费开源 | 多协议同步 | 非 WYSIWYG、界面偏工程化 | | **思源笔记** | WYSIWYG | 付费 S3/WebDAV | 免费+订阅 | 国产、功能全 | 数据格式私有 | ### 2.2 WriteFlow 的差异化机会 1. **Typora 级别的编辑体验 + 内置同步** — 目前市场上没有产品同时做到这两点 2. **本地文件格式(.md)—** 不锁定用户数据,可用任意编辑器打开 3. **自带同步引擎 —** 用你自己的 S3/WebDAV,无需额外付费 4. **轻量高性能 —** Tauri 比 Electron 内存占用少 60%+ 5. **跨平台 —** Windows / macOS / Linux 全支持 --- ## 3. 目标用户与用户故事 ### 3.1 核心用户画像 | 画像 | 描述 | 核心需求 | |------|------|---------| | **技术写作者** | 写技术博客、文档的开发者 | 代码高亮、数学公式、导出、Git 同步 | | **知识管理者** | 做笔记、写日记的学生/研究者 | 多设备同步、全文搜索、文件管理 | | **效率追求者** | 用 Markdown 做一切记录的极客 | 快捷键、最小干扰、自定义主题 | | **隐私敏感者** | 不希望数据在第三方服务器 | 自建 S3/MinIO 同步、纯本地可用 | ### 3.2 用户故事(关键场景) ``` 作为一名技术博客作者, 我想要在笔记本上写完文章后,自动同步到台式机继续编辑, 以便无缝切换设备而不需要手动拷贝文件。 ``` ``` 作为一个研究生, 我希望能将上课拍的板书照片拖入笔记中, 图片能自动上传到我的 S3 图床并在笔记里用相对路径引用, 以便在任何设备上都能看到完整笔记。 ``` ``` 作为一个隐私敏感用户, 我希望能使用自己搭建的 MinIO 服务器作为同步后端, 笔记和图片都不会经过任何第三方服务器。 ``` ``` 作为一名程序员, 我希望笔记仓库能通过 Git 协议同步, 以便利用 Git 的版本历史随时回溯笔记变更。 ``` --- ## 4. 功能规划 ### 4.1 MVP(Phase 1)— 基础编辑器 **目标:可用的本地 Markdown 编辑器,核心编辑体验对齐 Typora。** | 模块 | 功能点 | 优先级 | |------|--------|--------| | 编辑器 | 所见即所得渲染 | P0 | | 编辑器 | 标题(H1-H6) | P0 | | 编辑器 | 加粗、斜体、删除线、行内代码 | P0 | | 编辑器 | 有序/无序列表、嵌套列表 | P0 | | 编辑器 | 引用块 | P0 | | 编辑器 | 分隔线 | P0 | | 编辑器 | 链接与图片 | P0 | | 编辑器 | 代码块(有/无语言标注) | P0 | | 编辑器 | 表格(增删行列、对齐) | P1 | | 文件管理 | 新建/打开/保存 .md 文件 | P0 | | 文件管理 | 文件树侧边栏(浏览目录) | P0 | | 文件管理 | 最近打开的文件列表 | P1 | | 窗口 | 自定义标题栏(无系统边框) | P0 | | 主题 | 亮色/暗色主题切换 | P0 | | 导出 | 导出为 HTML | P1 | ### 4.2 Phase 2 — 同步引擎 v1 **目标:S3 协议同步上线,实现多设备笔记互通。** | 模块 | 功能点 | 优先级 | |------|--------|--------| | 同步核心 | S3 协议连接配置(Endpoint / Bucket / AK / SK) | P0 | | 同步核心 | 增量同步(仅上传/下载变更文件) | P0 | | 同步核心 | 冲突检测(同名文件被两台设备同时修改) | P0 | | 同步核心 | 手动触发同步 + 定时自动同步 | P0 | | 同步核心 | 同步状态指示(同步中/已同步/冲突/错误) | P0 | | 图片同步 | 图片上传到 S3,自动替换为 S3 URL | P1 | | 图片同步 | 图片相对路径引用方案 | P1 | | 图片同步 | 粘贴图片自动上传 + 生成引用 | P1 | | 体验 | 首次配置向导 | P1 | ### 4.3 Phase 3 — 高级编辑 **目标:编辑能力对齐 Typora,满足专业写作需求。** | 模块 | 功能点 | 优先级 | |------|--------|--------| | 代码 | 语法高亮(100+ 语言) | P0 | | 数学 | KaTeX/LaTeX 公式渲染 | P0 | | 图表 | Mermaid 流程图、甘特图、序列图 | P1 | | 图表 | PlantUML 可选支持 | P2 | | 导航 | 文档大纲(根据标题自动生成) | P0 | | 导航 | 大纲点击跳转到对应段落 | P0 | | 表格 | 可视化表格编辑器(拖拽调整列宽) | P1 | | 表格 | 表格内公式计算 | P2 | | 导出 | 导出 PDF(带样式) | P0 | | 导出 | 导出 Word (.docx) | P1 | | 导出 | 导出图片 (.png) | P2 | | 脚注 | 脚注/尾注 | P2 | | 任务 | 任务列表(checkboxes) | P1 | | 目录 | TOC 自动生成 | P1 | ### 4.4 Phase 4 — 多协议同步 **目标:扩展同步协议,覆盖更多使用场景。** | 协议 | 功能说明 | 优先级 | |------|---------|--------| | WebDAV | 支持坚果云、NextCloud、自建 WebDAV 服务器 | P0 | | Git | 同步到 GitHub/GitLab/Gitee 仓库,支持版本历史浏览 | P1 | | WebRTC | 局域网点对点直连同步(无需中央服务器,极低延迟) | P1 | | SMB/NFS | 局域网共享文件夹模式,检测文件变更自动刷新 | P2 | | OneDrive | 利用系统 OneDrive 目录的自动同步能力 | P2 | | iCloud | macOS 上利用 iCloud Drive 目录 | P2 | ### 4.5 Phase 5 — 体验打磨与生态 **目标:完整的桌面应用体验,建立插件生态。** | 模块 | 功能点 | 优先级 | |------|--------|--------| | 标签页 | 多标签页管理文件 | P0 | | 标签页 | 标签页拖拽排序、分离窗口 | P1 | | 搜索 | 全文搜索(文件名+文件内容) | P0 | | 搜索 | 正则搜索 | P1 | | 搜索 | 全局搜索与替换 | P1 | | 快捷键 | 完整快捷键体系(可自定义) | P0 | | 插件 | 插件系统(JS/TS 编写) | P1 | | 插件 | 插件市场 | P2 | | 主题 | 自定义 CSS 主题 | P0 | | 主题 | 主题市场 / 社区分享 | P2 | | 国际化 | 中英文界面 | P0 | | 国际化 | 社区贡献更多语言 | P2 | | 无障碍 | 屏幕阅读器支持、键盘导航 | P2 | --- ## 5. 技术架构 ### 5.1 整体架构图 ``` ┌──────────────────────────────────────────────────┐ │ 前端 (Vue 3) │ │ ┌──────────┐ ┌──────────┐ ┌──────────────────┐ │ │ │ 编辑器组件 │ │ 文件树 │ │ 设置/同步管理 │ │ │ │ ProseMirror│ │ 组件 │ │ 组件 │ │ │ └─────┬─────┘ └─────┬─────┘ └────────┬─────────┘ │ │ │ │ │ │ ├────────┼─────────────┼───────────────┼─────────────┤ │ │ Tauri IPC Bridge (invoke) │ │ ├────────┼─────────────┼───────────────┼─────────────┤ │ 后端 (Rust) │ │ ┌──────────────────────────────────────────────┐ │ │ │ Command Layer │ │ │ │ read_file / write_file / list_dir / ... │ │ │ ├──────────────┬───────────────┬───────────────┤ │ │ │ 文件管理模块 │ 同步引擎 │ 导出模块 │ │ │ │ - 文件IO │ - S3 Client │ - PDF │ │ │ │ - 目录监听 │ - Diff 引擎 │ - HTML │ │ │ │ - 图片处理 │ - 冲突解决 │ - DOCX │ │ │ ├──────────────┴───────────────┴───────────────┤ │ │ │ Platform Abstraction │ │ │ │ (文件系统 / 网络 / 系统托盘 / 快捷键) │ │ │ └──────────────────────────────────────────────┘ │ └──────────────────────────────────────────────────┘ ``` ### 5.2 前端技术选型 | 组件 | 技术选型 | 选型理由 | |------|---------|---------| | 框架 | Vue 3 + Composition API | 与 Tauri 生态结合好,轻量灵活 | | 语言 | TypeScript | 类型安全,大型项目必备 | | UI 库 | Naive UI | Vue3 高颜值 UI 库,TypeScript 原生支持 | | Markdown 编辑器 | ProseMirror / Milkdown | 插件化架构,WYSIWYG 能力强 | | 代码高亮 | Shiki / Prism.js | 服务端级语法高亮 | | 数学渲染 | KaTeX | 比 MathJax 更快 | | 图表 | Mermaid.js | 标准 Markdown 图表方案 | | 打包 | Vite 6 | 极速 HMR,生态完善 | ### 5.3 Rust 后端技术选型 | 模块 | 选型 | 说明 | |------|------|------| | 框架 | Tauri 2 | 桌面框架,Rust 后端 | | S3 客户端 | rust-s3 / aws-sdk-s3 | S3 协议实现 | | WebDAV 客户端 | reqwest + 自实现 | HTTP 协议扩展 | | Git | git2-rs | libgit2 绑定 | | 文件监听 | notify | 跨平台文件变更监听 | | Markdown 解析 | pulldown-cmark | 高性能 Markdown 解析器 | | PDF 生成 | printpdf / genpdf | Rust 原生 PDF 生成 | | 序列化 | serde + serde_json | 配置与 IPC 通信 | | 加密 | ring / aes-gcm | 远程凭据加密存储 | | 压缩 | flate2 | gzip 压缩(WebDAV) | ### 5.4 前端与后端通信设计 ```rust // Rust 侧 - 定义 Tauri Command #[tauri::command] async fn read_file(path: String) -> Result { std::fs::read_to_string(&path).map_err(|e| e.to_string()) } #[tauri::command] async fn sync_to_s3( config: S3Config, files: Vec, ) -> Result { // 同步逻辑 } ``` ```typescript // 前端侧 - 调用 Tauri Command import { invoke } from '@tauri-apps/api/core'; const content = await invoke('read_file', { path: '/path/to/file.md' }); const result = await invoke('sync_to_s3', { config, files }); ``` ### 5.5 Tauri Capabilities 权限设计 ```json { "identifier": "default", "windows": ["main"], "permissions": [ "core:default", "fs:allow-read-text-file", "fs:allow-write-text-file", "fs:allow-read-dir", "fs:allow-exists", "dialog:allow-open", "dialog:allow-save", "http:default" ] } ``` --- ## 6. UI/UX 设计规范 ### 6.1 设计原则 1. **沉浸优先** — 编辑器占据视觉重心,Chrome 尽可能少 2. **所见即所得** — 光标所在行的 Markdown 语法标记即时隐藏,只展示渲染结果 3. **无干扰** — 默认隐藏工具栏,聚焦模式更进一步隐藏侧边栏 4. **反馈及时** — 同步状态、保存状态始终可见,不超过 200ms 延迟给出反馈 5. **渐进披露** — 高级功能隐藏在二级菜单,不干扰日常使用 ### 6.2 布局方案 ``` ┌─────────────────────────────────────────┐ │ 自定义标题栏 (拖拽区 + 窗口控制 + Logo) │ ├────────┬────────────────────────────────┤ │ 侧边栏 │ │ │ │ │ │ 文件树 │ 编辑器主区域 │ │ │ (所见即所得 Markdown) │ │ 大纲 │ │ │ │ │ │ 同步状态│ │ │ │ │ ├────────┴────────────────────────────────┤ │ 状态栏 (文件路径 | 字数 | 同步状态 | 光标位置) │ └─────────────────────────────────────────┘ ``` ### 6.3 三种视图模式 | 模式 | 描述 | 使用场景 | |------|------|---------| | **编辑模式(默认)** | 所见即所得,打字时隐藏 Markdown 标记 | 日常写作 | | **源码模式** | 显示原始 Markdown 文本 | 精确控制格式、调试 | | **阅读模式** | 纯渲染,不可编辑 | 阅读长文、演示 | ### 6.4 色彩方案 - **亮色主题**:背景 #FFFFFF,文字 #333333,强调色 #2080F0 - **暗色主题**:背景 #1E1E1E,文字 #D4D4D4,强调色 #4FC1FF - **Sepia 主题**:背景 #FBF0D9,文字 #5F4B32(类 Kindle) --- ## 7. 数据结构设计 ### 7.1 笔记本(Workspace)配置 ```json { "workspaces": [ { "id": "ws-001", "name": "我的笔记", "local_path": "~/Documents/WriteFlow/notes", "sync": { "enabled": true, "protocol": "s3", "config": { "endpoint": "https://s3.amazonaws.com", "bucket": "my-notes-bucket", "region": "us-east-1", "prefix": "writeflow/" }, "auto_sync_interval_secs": 300, "conflict_strategy": "keep_both" } } ] } ``` ### 7.2 同步元数据 ```json { "file_sync_meta": { "notes/getting-started.md": { "last_local_modified": "2026-07-15T10:30:00Z", "local_hash": "sha256:abc123...", "last_remote_modified": "2026-07-15T09:00:00Z", "remote_hash": "sha256:abc123...", "sync_status": "synced" }, "notes/draft.md": { "last_local_modified": "2026-07-15T10:35:00Z", "local_hash": "sha256:def456...", "last_remote_modified": "2026-07-15T09:00:00Z", "remote_hash": "sha256:old789...", "sync_status": "local_newer" } } } ``` ### 7.3 图片存储方案 ``` 笔记目录/ ├── notes/ │ ├── article.md │ └── images/ │ └── article/ │ ├── screenshot-01.png │ └── diagram-02.png ``` Markdown 中引用方式: ```markdown ![截图](images/article/screenshot-01.png) ``` 同步时策略: - **S3 模式**:图片上传到 `s3://bucket/prefix/notes/images/article/screenshot-01.png`,本地保留原始文件 - **图片引用不做 URL 替换**,保持相对路径,确保本地和远程均可渲染 --- ## 8. 同步引擎设计 ### 8.1 同步流程 ``` 用户操作 / 定时触发 │ ▼ ┌─ 计算本地文件 Hash ─┐ │ │ ▼ ▼ ┌──────────┐ ┌──────────────┐ │ 本地变更 │ │ 获取远程文件列表 │ │ 文件列表 │ │ (S3 ListObjects)│ └────┬─────┘ └──────┬───────┘ │ │ └───────┬───────────┘ ▼ ┌──────────────┐ │ Diff 对比 │ │ 三元对比: │ │ 本地 / 远程 │ │ / 上次同步基线│ └──────┬───────┘ │ ┌───────┼───────┐ ▼ ▼ ▼ 仅本地上传 仅远程下载 冲突 (Upload) (Download) (Conflict) │ │ │ └───────┼───────┘ ▼ ┌──────────────┐ │ 更新同步基线 │ │ (保存到本地) │ └──────────────┘ ``` ### 8.2 冲突处理策略 | 策略 | 描述 | 适用场景 | |------|------|---------| | `keep_local` | 以本地版本为准,覆盖远程 | 确定本地是最新 | | `keep_remote` | 以远程版本为准,覆盖本地 | 刚换了新设备 | | `keep_both` | 保留冲突副本 `filename_conflict_20260715.md` | 不确定优先级的默认策略 | | `manual_merge` | 弹出对比界面,用户手动合并 | 重要文件 | ### 8.3 安全性 - **凭据加密**:S3 的 AccessKey/SecretKey 使用 AES-256-GCM 加密存储在本机 Keychain(macOS Keychain / Windows Credential Manager / Linux Secret Service) - **传输加密**:HTTPS/TLS 加密传输(S3 SDK 默认开启) - **本地文件不动**:同步失败不会删除或修改本地文件 ### 8.4 同步协议抽象设计 ```rust // 统一的同步接口 #[async_trait] pub trait SyncProtocol { async fn connect(&self, config: SyncConfig) -> Result<(), SyncError>; async fn list_files(&self, prefix: &str) -> Result, SyncError>; async fn upload(&self, local_path: &Path, remote_key: &str) -> Result<(), SyncError>; async fn download(&self, remote_key: &str, local_path: &Path) -> Result<(), SyncError>; async fn delete(&self, remote_key: &str) -> Result<(), SyncError>; async fn get_metadata(&self, remote_key: &str) -> Result; } // 具体实现 pub struct S3SyncEngine { /* ... */ } pub struct WebDAVSyncEngine { /* ... */ } pub struct GitSyncEngine { /* ... */ } pub struct WebRTCSyncEngine { /* ... */ } ``` --- ## 9. 开发排期与里程碑 ### 9.1 整体时间线 ``` 2026 Q3 2026 Q4 2027 Q1 2027 Q2 ├──────┼──────────┼───────┼────────┼───────┼────────┼────── │ │ │ │ │ │ │ Phase 1 Phase 2 Phase 3 Phase 4 (MVP) (S3同步) (高级编辑) (多协议同步) 8 周 6 周 8 周 6 周 ``` ### 9.2 Phase 1 MVP 详细排期(8 周) | 周次 | 里程碑 | 交付物 | |------|--------|--------| | W1 | 编辑器基础 | Milkdown 集成,基础 Markdown 实时渲染 | | W2 | 编辑器进阶 | 代码块、表格、链接、图片、任务列表 | | W3 | 文件系统 | 文件树侧边栏、新建/打开/保存文件 | | W4 | 文件管理 | 最近文件、自动保存、文件监听刷新 | | W5 | 主题系统 | 亮色/暗色主题、CSS 变量体系 | | W6 | 导出功能 | HTML 导出、PDF 导出 | | W7 | 打磨与测试 | 快捷键、Bug 修复、性能优化 | | W8 | 发布 MVP | 打包、签名、发布 GitHub Release | ### 9.3 Phase 2 S3 同步详细排期(6 周) | 周次 | 里程碑 | 交付物 | |------|--------|--------| | W9-W10 | S3 连接层 | S3 Client 实现、连接配置 UI | | W11 | 同步核心 | Hash 计算、Diff 引擎、上传/下载 | | W12 | 冲突处理 | 冲突检测、三种冲突策略、状态 UI | | W13 | 图片同步 | 图片上传 + 引用管理 | | W14 | 打磨发布 | 首次配置向导、同步日志、发布 v0.2 | ### 9.4 关键指标 | 指标 | 目标值 | |------|--------| | 冷启动时间 | < 2 秒 | | 空闲内存占用 | < 100 MB | | 打开 1000 行 .md 文件 | < 500ms | | S3 同步 100 个文件 | < 30 秒(首次)/< 5 秒(增量) | | 冲突检测准确率 | 100%(不应有静默覆盖) | --- ## 10. 质量保障与测试策略 ### 10.1 测试金字塔 ``` ┌───────┐ │ E2E │ 端到端测试 (Playwright) │ 10% │ ┌┴───────┴┐ │ 集成测试 │ 前后端联调 + 同步集成 │ 30% │ ┌┴─────────┴┐ │ 单元测试 │ Rust + Vitest │ 60% │ └────────────┘ ``` ### 10.2 各层测试策略 | 层级 | 工具 | 覆盖重点 | |------|------|---------| | Rust 单元测试 | `cargo test` | 文件操作、Hash 计算、同步协议逻辑 | | Rust 集成测试 | `cargo test --test` | S3 客户端连接、同步引擎完整流程 | | 前端单元测试 | Vitest + Vue Test Utils | 组件渲染、编辑器 API、状态管理 | | E2E 测试 | Playwright | 核心用户路径(新建-编辑-保存-同步-导出) | ### 10.3 关键测试用例 - [ ] 创建新文件 → 编辑内容 → Ctrl+S 保存 → 文件系统验证内容正确 - [ ] 粘贴图片 → 图片保存到相对路径 → Markdown 引用正确 - [ ] 配置 S3 → 点击同步 → 文件出现在 S3 Bucket - [ ] 两台设备修改同一文件 → 同步 → 检测到冲突 → 生成冲突副本 - [ ] 导出 PDF → 样式正确、图片完整、中文正常显示 - [ ] 暗色主题切换 → 编辑器/侧边栏/状态栏全部切换 --- ## 11. 发布与运营策略 ### 11.1 发布平台 | 平台 | 渠道 | 说明 | |------|------|------| | GitHub | Releases | 主要发布渠道,附带 Release Notes | | macOS | Homebrew Cask | `brew install writeflow` | | Windows | Winget / Chocolatey | 包管理器分发 | | Linux | AppImage / Snap / Flatpak | 主流格式覆盖 | | 官网 | writeflow.app | 下载页 + 文档 | ### 11.2 版本策略 - 采用语义化版本 `MAJOR.MINOR.PATCH` - 偶数次版本号为稳定版,奇数次为开发版 - 每 4-6 周发布一个 MINOR 版本 ### 11.3 开源策略 - **License**:MIT(最大化社区采用) - **贡献指南**:CONTRIBUTING.md + Issue Template + PR Template - **文档站点**:VitePress 搭建,托管于 GitHub Pages - **社区**:GitHub Discussions + Discord Server ### 11.4 商业化(长期可选) | 方式 | 说明 | 时机 | |------|------|------| | 完全免费开源 | 核心功能永久免费 | 从 Phase 1 起 | | 赞助 | GitHub Sponsors / Open Collective | Phase 3 后 | | 增值服务 | 官方托管同步服务(WriteFlow Sync) | Phase 5 后 | | 企业版 | SAML/SSO、审计日志、集中管理 | Phase 5 后 | --- ## 12. 风险评估与应对 | 风险 | 影响 | 概率 | 应对措施 | |------|------|------|---------| | ProseMirror/Milkdown 集成复杂度超出预期 | 延期 2-4 周 | 中 | 备选方案:使用 markdown-it 双栏模式先上线 | | S3 SDK 某些平台兼容性问题 | 同步功能不可用 | 低 | 多测试主力 S3 服务商,抽象接口可快速替换 | | 文件系统同步冲突数据丢失 | 用户数据丢失 | 低 | 默认 `keep_both` 策略,绝不静默删除文件 | | Tauri 2.x 大版本 API 变更 | 编译失败 | 中 | 锁定 Tauri 版本,定期评估升级风险 | | 竞品(Typora 复活/Obsidian 推出 WYSIWYG) | 差异化被削弱 | 中 | 主打同步能力作为核心壁垒 | | Linux 桌面碎片化导致兼容问题 | 部分 Linux 用户不可用 | 高 | AppImage 一份构建覆盖主流发行版 | --- ## 附录 A:参考资源 - [Tauri v2 官方文档](https://v2.tauri.app/) - [Milkdown - WYSIWYG Markdown Editor](https://milkdown.dev/) - [ProseMirror 官方指南](https://prosemirror.net/docs/guide/) - [Typora 产品设计参考](https://typora.io/) - [S3 API 规范](https://docs.aws.amazon.com/AmazonS3/latest/API/Welcome.html) - [WebDAV RFC 4918](https://www.rfc-editor.org/rfc/rfc4918) - [Naive UI](https://www.naiveui.com/) ## 附录 B:命名备选 | 名称 | 含义 | 可用性 | |------|------|--------| | WriteFlow | 写作流动 | 暂未注册 | | MarkNote | Markdown + Note | 暂未注册 | | InkWell | 墨池 | 暂未注册 | | Scripta | 拉丁文"写作" | GitHub 同名项目存在 | | TypeStone | 刻字石 | 暂未注册 | | **WriteFlow** ✅ | 最终选择 | — | --- > 文档维护:产品团队 > 下次评审时间:Phase 1 MVP 完成后