文档编辑器项目梳理
项目介绍
- 面向开发者和写作者的桌面编辑器,强调本地文件管理、富文本编辑、Git 版本管理和桌面效率能力。
Keep Notes 是一个基于 Electron、React 和 TypeScript 开发的 Markdown 桌面笔记应用。它直接管理本地 Markdown 文件,支持富文本编辑和源码模式切换,同时提供文件树、多标签、多面板、全文搜索、Git 状态管理、提醒事项、通知以及 PDF/Word/HTML 等格式导出。 保证富文本编辑器和 Markdown 源码之间的双向同步,以及在自动保存、文件外部修改、多面板复用和大文档场景下保持数据一致性和编辑流畅性。
技术栈
- Electron:桌面窗口、文件系统、托盘、全局快捷键、系统通知
- React 19 + TypeScript
- Vite / electron-vite:开发和构建
- Zustand:全局状态管理和部分配置持久化
- BlockNote + ProseMirror/Tiptap:富文本编辑器
- CodeMirror:代码块编辑和语法高亮
react-resizable-panels:可调整布局@tanstack/react-virtual:文件树和大文档虚拟化simple-git:Git 操作markdown-it:导出 HTMLhtml-to-docx:导出 Wordelectron-updater:应用自动更新- Vitest + Testing Library:单元测试和组件测试
技术架构
项目遵循 Electron 的进程隔离:
- Renderer 不直接访问 Node.js 文件系统
- preload 通过 contextBridge 暴露受限 API
- Main Process 负责文件、Git、窗口和系统能力
- 当前配置为 contextIsolation: true、nodeIntegration: false
React Renderer
├─ Zustand 状态管理
├─ 编辑器、文件树、Git、提醒、导出 UI
└─ preload 暴露的安全 API
│
IPC 通信
│
Electron Main Process
├─ 文件系统读写
├─ fs.watch 文件监听
├─ Git 操作
├─ 提醒定时器和通知
├─ 多窗口、托盘、快捷键
└─ PDF/Word/图片导出
技术难点
- 富文本和 Markdown 双向同步
- 自动保存和并发写入
- 外部文件修改和冲突处理
- 大文档性能
-外部文件修改和冲突处理 自动保存和并发写入