Markdown Editor
Markdown Editor 是一款基于 Electron 的本地优先 Markdown 笔记应用,支持多标签编辑、实时预览和普通文件夹笔记库。
- 应用使用 Electron 主进程、受限预加载 API 和原生 Web 渲染进程。
- 笔记正文始终保存在用户可直接访问的普通文件中。
功能概览
- 可靠编辑:原子保存、另存为、未保存内容恢复,以及外部文件修改冲突保护。
- 笔记库管理:目录树、全文搜索、批量失效链接检查、最近文件、收藏、可恢复的文件操作,以及同时打开不同笔记库的多窗口。
- Markdown 体验:GitHub Flavored Markdown、Mermaid、标题大纲、双向滚动同步和页内查找。
- 图片管理:本地与剪贴板图片落盘、相对路径插入,以及跨目录引用调整。
- 托管同步 Beta:账号、自动同步、保守三方合并、冲突处理、远端仓库、设备、配额、版本历史、文件或仓库恢复和原始库导出。
完整能力与快捷键参阅功能说明。
托管同步 Beta
账号、仓库与历史
- 同步中心提供账号、全局自动同步设置、设备管理、配额查看、远程登出和原始库导出。
- 远端仓库支持命名、列表查看和克隆;当前仓库可以查看本地与远端详情。
- 版本历史支持展开逐行 diff、恢复单个文件,以及按全局 revision 恢复整个本地仓库。
同步与冲突处理
- 当前仓库的手动同步入口位于侧边栏仓库操作区。
- Markdown 冲突使用保守三方合并;无法安全合并时保留冲突现场。
- 文件树会标记待处理冲突,并支持调用配置的外部合并工具。
自动同步
- 全局自动同步在同步中心配置,启用后默认每 60 秒运行一次。
- 当前仓库始终参与全局自动同步。
- 两个仓库级开关均位于侧边栏仓库操作区,并且彼此独立。
- “切换仓库后仍自动同步”是独立的仓库级开关,决定切换到其他仓库后是否继续在后台同步。
- “安全的自动同步”是另一个独立的仓库级开关,决定该仓库参与自动同步时是否只允许单向待推送或单向待拉取。
- 安全模式检测到双向变化或请求竞态时会保留现场并跳过,不会自动进入冲突解决。
整体恢复
整体恢复会像 git reset --hard 一样,使用所选全局 revision 覆盖本地同步文件与编辑器内容。
-
全局自动同步关闭时,恢复只改变本地仓库,远端保持不变。
-
全局自动同步开启时,恢复结果会立即按照该仓库的普通或安全自动同步策略处理。
-
端到端调用链、模块职责、持久化模型和排障指南参阅同步流程与代码位置。
-
部署与安全说明参阅托管同步 Beta 专题文档。
快速开始
安装依赖并启动开发版本:
npm ci
npm run dev
文档
| 文档 | 内容 |
|---|---|
| 文档导航 | 文档职责、推荐阅读路径和维护约定 |
| 功能说明 | 当前已交付功能和快捷键 |
| 技术架构与实施计划 | 架构边界、技术决策、阶段状态和路线图 |
| 同步流程与代码位置 | 同步调用链、模块职责、持久化模型和排障入口 |
| 托管同步 Beta | 服务部署、协议、安全、备份、容量和灰度说明 |
阶段设计、验证基线和其余专题入口统一收录在文档导航中。
开发验证
运行完整验证:
npm run validate
- 该命令依次执行 ESLint、单元测试、Electron 冒烟测试和当前平台目录打包。
- 详细验证范围与人工回归清单参阅阶段 0 工程基线。
也可以按需单独运行:
npm run lint
npm run test
npm run test:smoke:broken-links
npm run benchmark
npm run benchmark:workspace
npm run benchmark:hosted-sync -- 250
构建
npm run pack # 当前平台未签名测试应用
npm run dist:win # Windows 安装包
npm run dist:mac # macOS 安装包
托管同步 Beta 开发服务
启动本地开发服务:
MYNOTE_SYNC_DEV=1 npm run sync-server
开发服务默认监听 http://127.0.0.1:8787。
局域网 HTTP 联调时,在服务端和客户端启动命令前同时设置:
MYNOTE_SYNC_FORCE_HTTPS=false
- 该开关默认启用 HTTPS 强制策略,只能在受控开发网络中关闭。
- 生产环境必须使用 TLS,并配置外置 AES 主密钥、备份目录和指标管理令牌。
完整的环境变量、部署步骤、安全边界和恢复流程参阅托管同步 Beta。
