一句话定位
本地优先的 Markdown 笔记 + 清单待办:一套代码,Web 与 Electron 桌面双形态;运行时零依赖后端,可选 S3 / WebDAV 同步。
问题背景
常见笔记工具要么绑定云账号、格式封闭,要么桌面与 Web 两套逻辑。希望数据默认在本地、Markdown 可读可迁移,又能按需同步,而不必自建重型后端。
核心能力
编辑与整理
- Markdown 即时预览:CodeMirror 6 Decorations 隐藏语法符号,光标进入节点时源码显形;边写边看排版结果。
- 双模式:笔记 / 待办共用编辑内核与存储;全文搜索、置顶、收藏、标签、三种排序。
- 待办聚合:自动汇总笔记正文里的
- [ ],勾选回写原笔记并可直达出处;清单分组、截止日、优先级、重要标记。
形态与同步
- 桌面:Electron 内嵌同一后端(随机端口 + 本机回环),系统托盘随主题切换。
- Web:
node server.js即可;亦可双击index.html仅用 localStorage。 - 可选同步:S3(SigV4)或 WebDAV(坚果云 / Nextcloud / 群晖);条目级合并,误删可用「从云端恢复」。
典型使用场景举例
- 本机日记与清单:桌面端写 Markdown 笔记,待办视图筛「今天 / 重要」,数据在用户目录,不依赖账号。
- 跨设备备份:开启 WebDAV「保存即上传」,笔记本与台式机条目级合并。
- 快速试用:clone 后
npm run web,浏览器访问默认端口,无需安装桌面包。
技术栈与架构要点
| 层 | 选型 |
|---|---|
| 编辑器 | CodeMirror 6 + @lezer/markdown(GFM),esbuild 打成 vendor/cm6.js |
| 前端 | 原生 JS,无框架构建步骤 |
| 后端 | Node 原生 http,零第三方运行时依赖 |
| 桌面 | Electron(内嵌后端 + preload) |
安全上默认只监听 127.0.0.1、请求体限大小、静态路径防越界、页面 CSP;后端零鉴权故刻意收窄暴露面。
截图


