Uninote
Uninote
用户根目录
brdr
common
programming
docs
后端试题
问题讨论

2. 笔记库与文件管理

  • 将普通本地文件夹作为笔记库打开,无需导入或转换。
  • 自动恢复上次使用的笔记库,并可在最多 10 个最近笔记库之间切换。
  • 侧边栏目录树展示文件夹和受支持的 Markdown 文件。
  • 支持新建文件/文件夹、重命名、移动、复制,以及移入系统回收站。
  • 有未保存文档时阻止移动、重命名或删除对应文件和父文件夹。
  • 移动或复制文档时调整常见 Markdown 图片相对路径。
  • 支持文件名和正文搜索、正文命中片段、最近文件和收藏。
  • 设置编辑器字号以及默认是否显示预览。

可以将任意普通文件夹作为笔记库,使用目录树、全文搜索、最近文件、收藏及可恢复的文件管理操作。

workspace

阶段 2 桌面笔记库设计与验证

阶段 2 将编辑器从“逐个打开文件”扩展为本地优先的 Markdown 笔记库。笔记库就是用户选择的普通文件夹,不要求导入或转换文件。

笔记库与目录树

  • 通过系统文件夹对话框打开笔记库,并自动恢复上次使用的笔记库。
  • 保存最多 10 个最近笔记库,可从侧边栏直接切换。
  • 目录树展示普通文件夹及 .md.markdown.mdown.mkd 文件。
  • .mynote 和符号链接不会进入目录树,也不会被递归扫描。
  • 单个笔记库最多扫描 10000 个 Markdown 文件和 20000 个目录项;超过限制时明确报错。
  • 所有工作区 IPC 都再次校验真实路径,拒绝 .. 越界以及通过符号链接访问库外文件。

文件操作

侧边栏支持:

  • 在当前文件夹新建 Markdown 文件或子文件夹。
  • 重命名文件和文件夹。
  • 将条目移动到用户输入的库内目标文件夹。
  • 在原位置生成带“副本”后缀的文件或文件夹副本。
  • 将条目移入操作系统回收站,而不是直接永久删除。
  • 收藏和取消收藏 Markdown 文件。

目标位置已存在同名条目、移动到自身内部、操作符号链接或路径越界时,操作会被拒绝。打开且尚未保存的文件及其父文件夹不能被移动、重命名或删除,避免用磁盘版本覆盖内存中的修改。

移动或重命名打开的干净文档后,标签路径、正文基线和文件监听会一起迁移,不需要重新打开。

附件引用

移动、重命名或复制 Markdown 文件和文件夹时,应用会调整常见的内联图片相对路径:

![说明](../assets/image.png)
  • 文件单独移动时,引用继续指向原附件。
  • 文件夹整体移动或复制时,位于该文件夹内部的附件引用跟随新位置。
  • HTTP、HTTPS、根路径和锚点引用不会被修改。
  • 无法无损识别的复杂或未转义目的地址保持原文,不做猜测性修改。

该能力当前只处理 Markdown 图片语法,不会改写普通链接或 HTML 标签中的路径。

搜索与状态

  • 搜索匹配相对文件路径和 Markdown 正文,不区分大小写。
  • 单文件超过 2 MB 时跳过正文搜索,但仍可通过目录树打开。
  • 每次最多返回 100 项,并显示正文命中片段。
  • 文件内容按修改时间和大小缓存;再次搜索无需重复读取未变化的文件。
  • 每个笔记库保存最多 20 个最近文件和 100 个收藏。

工作区状态保存在 Electron userData/workspace-state.json,使用原子写入。正文和附件始终保留在用户的普通文件夹中。

基础设置

设置对话框当前支持:

  • 编辑器字号,范围 12–24 px。
  • 启动及刷新笔记库时是否默认显示预览区。

设置与最近记录跨应用重启保留。

性能基准

运行:

npm run benchmark:workspace

基准会创建 1000 个小型 Markdown 文件,测量目录扫描、首次正文搜索和缓存搜索。2026-08-14 开发环境的多次运行参考范围:

  • 扫描约 130–180 ms。
  • 首次搜索约 470–1200 ms。
  • 缓存搜索约 160–420 ms。

结果用于比较相对回退,不作为所有设备的硬性 SLA。当真实笔记库规模或延迟超过当前方案能力时,再评估 SQLite FTS。

自动化覆盖

  • 工作区扫描、文件读取、新建文件和文件夹。
  • 搜索、最近记录、收藏、设置持久化。
  • 重命名、移动、复制和系统回收站调用。
  • Markdown 相对图片路径重写。
  • 路径穿越、符号链接逃逸、名称冲突和递归移动拒绝。
  • 打开文档迁移后的状态更新。
  • Electron 冒烟测试覆盖工作区恢复、目录树、搜索和打开文件。

人工平台验证

发布前仍需在 Windows/macOS 测试制品上检查:

  1. 系统文件夹对话框与最近笔记库切换。
  2. 中文、空格、长路径和只读目录。
  3. 回收站中的恢复操作。
  4. 文件夹跨层级移动及含附件目录的复制。
  5. 外部程序修改目录结构后手动刷新。
  6. 1000–10000 文件笔记库的滚动和搜索体验。

init-初始化脚本

windows-client

点赞(0) 阅读(14) 举报
目录
标题