# PineNote **Repository Path**: taote/PineNote ## Basic Information - **Project Name**: PineNote - **Description**: PineNote 是一款面向 Windows 的本地优先笔记应用,采用 Rust + Tauri v2 + TypeScript + SQLite 架构,兼顾原生性能与轻量体积。启动快、响应快、内存占用低,数据全部保存在本地,更安全可控。安装包仅约 2MB,却集成 Markdown/富文本、全文搜索、历史版本、自动备份与标签管理,适合长期稳定使用。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-04-03 - **Last Updated**: 2026-04-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PineNote PineNote 是一个面向 Windows 10 / Windows 11 的本地笔记桌面应用,当前技术栈为: `Rust + Tauri v2 + TypeScript + SQLite + Markdown + Rich Text` 项目目标不是做一个“大而全”的知识库平台,而是做一个启动快、结构稳、适合长期本地使用的知识工作台。 ## 文档基线 为了避免后续上下文继续散落在长对话里,项目根目录现在固定维护下面这些文档: - [README.md](/D:/test/PineNote/README.md):项目目标、总体说明和文档索引 - [PLAN.md](/D:/test/PineNote/PLAN.md):当前开发计划和推进阶段 - [ARCHITECTURE.md](/D:/test/PineNote/ARCHITECTURE.md):真实架构和关键数据流 - [CHANGELOG.md](/D:/test/PineNote/CHANGELOG.md):版本变更记录 - [TASKS.md](/D:/test/PineNote/TASKS.md):当前待办和优先级 - [SESSION_SUMMARY_2026-04-10.md](/D:/test/PineNote/SESSION_SUMMARY_2026-04-10.md):本轮长对话的压缩摘要 如果要快速恢复项目上下文,建议阅读顺序是:`README -> SESSION_SUMMARY -> PLAN -> ARCHITECTURE -> TASKS`。 ## 当前版本 当前仓库版本:`0.4.1` 当前状态:`0.4.1` 已作为当前稳定版发布;`0.4.2` 开发范围已确定。 当前阶段重点:发布后观察、收集真实使用反馈,并为下一轮功能优先级做准备。 ### 0.4.1 稳定版发布 - 历史版本 / 快照恢复第一版已完成:支持历史版本列表、预览、恢复,恢复前自动创建恢复点,并新增手动 `记录版本` - 自动备份计划第一版已完成:支持启动自动备份、每日首次退出自动备份,以及设置页打开数据目录 / 备份目录 - 批量整理第一版已完成:支持 `Ctrl / Shift` 多选、批量移动分类、批量添加标签、批量移除标签、批量导出、批量删除到回收站 - 搜索体验已增强:默认改为 `全局搜索`,并支持切换为 `当前视图` 搜索,中文短词搜索继续保留优化 - 标签管理页第一版已完成:支持统一查看标签、重命名、合并标签、删除标签 - 第三屏布局做了稳定性收口:右上动作区与标签区布局更稳定,`1920x1080` 全屏场景下阅读区横向滚动问题已修正 - 本次稳定版已完成 `npm run build`、`cargo test --manifest-path src-tauri/Cargo.toml -- --test-threads=1` 与 `npm run tauri:build` 验证 ### 0.2.0 已完成更新 - 全新的三栏桌面布局,界面方向调整为更接近 Windows 桌面软件的工作区体验 - 顶部改为自定义标题栏,支持窗口拖拽、最小化、最大化、关闭 - 顶部菜单栏接入 `文件 / 编辑 / 视图 / 帮助` - `文件` 菜单接入 `设置`,`帮助` 菜单接入 `关于 PineNote` - 新增工作空间入口:`全部笔记`、`星标收藏`、`最近编辑`、`回收站` - 新增 `回收站` 工作区,支持查看已删除笔记、恢复笔记、彻底删除笔记 - 新增 `设置` 页面,并改为系统页展示方式 - 新增 `关于` 页面,并改为系统页展示方式 - 新增笔记 `收藏 / 关注` 操作入口,并接入实际保存链路 - 笔记列表支持按不同工作区视图切换展示 - 中栏笔记列表已去掉横向滚动,长标题、长摘要、长标签会自动换行或省略 - 界面主题从旧版蓝色导航风格调整为更克制的中性色 + 绿色强调 - 保留并兼容现有 Markdown / 富文本双编辑能力 - 富文本编辑体验已修复:支持空白状态聚焦、可见光标、代码插入与标题编辑 - 中文搜索已增强:短中文词会合并 `FTS + LIKE` 搜索结果,标题命中优先排序 ### 0.3.0 已完成更新:第一批 - `文件` 菜单新增 `导入 Markdown` - `文件` 菜单新增 `导出笔记` - `文件` 菜单新增 `数据备份` - `文件` 菜单新增 `数据恢复` - 支持导入单个 Markdown 文件,或递归导入整个 Markdown 文件夹 - 导入时支持目标分类选择、重名处理策略、按原目录自动创建分类 - 支持导出当前笔记或当前列表中的可见笔记 - 导出格式首批支持 `Markdown` 与 `纯文本` - 支持一键备份当前 SQLite 数据库 - 支持从备份文件恢复数据库,并会先自动创建安全备份 - Rust 侧已补充导入、导出、备份、恢复的自动化测试 ### 0.3.0 已完成更新:第二批 - `帮助` 菜单新增 `使用说明` - `帮助` 菜单新增 `快捷键` - 系统页新增桌面端使用说明,覆盖新建、分类、搜索、回收站、导入导出等核心工作流 - 系统页新增快捷键说明,并同步接入 `Ctrl+N / Ctrl+Shift+N / Ctrl+F / Ctrl+S / Ctrl+E / Delete / F2 / Esc` - 关于页说明同步更新到 `0.3.0` 阶段目标 ### 0.3.0 已完成更新:第三批 - 设置页新增 `编辑区宽度` 选项 - 设置页新增 `编辑字号` 选项 - 设置页新增 `自动保存节奏` 选项 - 设置页新增 `数据位置` 信息展示 - 回收站支持 `全部恢复` - 回收站支持 `清空回收站` - Rust 侧补充回收站批量恢复与批量清空测试 ### 0.3.0 已完成更新:第四批 - 顶部 `编辑` 菜单补齐为真正的桌面下拉菜单 - 顶部 `视图` 菜单补齐为真正的桌面下拉菜单 - `文件` 菜单新增 `退出 PineNote` - 编辑菜单接入 `新建笔记 / 新建分类 / 立即保存 / 阅读编辑切换 / 删除当前笔记` - 视图菜单接入 `全部笔记 / 最近编辑 / 星标收藏 / 回收站` - 菜单项补充快捷键提示、当前视图高亮和禁用态 - `Esc` 现在可关闭顶部菜单和右键菜单 - 单篇笔记从回收站恢复后,会自动回到原分类并选中该笔记 - 全部恢复后,会自动切换到 `最近编辑` 视图继续工作 ### 0.3.0 已完成更新:第五批 - 编辑区标题下方新增状态条,统一展示 `阅读 / 编辑`、`待保存 / 保存中 / 已保存`、自动保存节奏等信息 - 中栏笔记卡片新增草稿保存状态徽标,未保存修改会更容易被识别 - 编辑头部的元信息收敛为 `分类 / 字数 / 更新时间`,减少重复文案堆叠 - 新建空白笔记时,若标题仍是默认标题且正文为空,会优先聚焦标题,方便直接命名 - 状态提示在短暂提示结束后,会回到更贴近当前上下文的常驻文案,而不是统一回到固定提示 ### 0.3.0 已完成更新:第六批问题修正 - 修复文件菜单导入 / 导出 / 备份 / 恢复链路中的原生文件对话框中文标题乱码 - 修复立即保存后界面状态可能短暂停留在 `保存中` 的问题 - 修复批量刷新数据源后,旧草稿状态可能残留到新数据上的问题 - 修复外部导入的 Markdown 笔记打开后未进入渲染阅读态的问题,Markdown 笔记默认先以阅读态打开 - 优化顶部菜单、下拉菜单与回收站头部的排版,移除重复的“快速检索”可见入口,保留顶部搜索框与 `Ctrl+F` - 补做一轮以真实使用路径为主的统一构建与测试验证 ### 当前仍已具备的核心能力 - 分类树管理:新建、重命名、删除分类 - 笔记管理:新建、删除、移动分类 - 标签编辑 - 标签管理页:统一查看、重命名、合并、删除标签 - Markdown / 富文本双模式编辑 - 全文搜索 - 搜索范围切换:`全局` / `当前视图` - 自动保存 - 历史版本 / 快照恢复 / 手动记录版本 - 自动备份计划与数据目录直达 - 批量整理 - 回收站恢复与彻底删除 - 收藏与关注 - 顶部桌面菜单与快捷键 - 设置与关于系统页 - 编辑状态条与草稿保存反馈 - SQLite 本地持久化 - Windows 可执行文件与 NSIS 安装包构建 ## 目录结构 ```text . ├─ README.md ├─ package.json ├─ src │ ├─ main.ts │ ├─ note-content.ts │ ├─ pinenote-desktop.css │ ├─ pinenote-navigator.ts │ └─ types.ts └─ src-tauri ├─ Cargo.toml ├─ tauri.conf.json ├─ migrations │ └─ 0001_init.sql └─ src ├─ app_state.rs ├─ commands.rs ├─ database.rs ├─ lib.rs └─ models.rs ``` ## 数据设计 - `folders`:分类目录 - `notes`:笔记主表 - `tags`:标签 - `note_tags`:笔记与标签关联 - `notes_fts`:SQLite FTS5 全文索引 当前搜索索引字段: - `title` - `body_plain` - `search_tags` ## 本地开发 推荐环境: - Node.js 20+ - npm 10+ - Rust stable - Visual Studio C++ Build Tools - Microsoft WebView2 Runtime 安装依赖: ```bash npm install ``` 前端构建: ```bash npm run build ``` 桌面开发模式: ```bash npm run tauri:dev ``` 桌面打包: ```bash npm run tauri:build ``` ## 测试与验证 当前已验证: - `npm run build` - `cargo test --manifest-path src-tauri/Cargo.toml -- --test-threads=1` - `npm run tauri:build` Rust 侧当前覆盖的重点包括: - 标签与分类保存后会写入数据库并可被搜索命中 - 分类在仍有笔记时不可删除 - 富文本新建笔记会生成空白富文本文档 - 收藏 / 关注状态可随笔记保存一起持久化 - 回收站列表、恢复、彻底删除的数据库链路 - 中文短词搜索与中文结果排序验证 - Markdown 导入、笔记导出、数据库备份与恢复 - 回收站批量恢复与批量清空 - 编辑区状态反馈与草稿保存可视化 ## 0.4.1 稳定版说明 当前稳定版本:`0.4.1` 版本定位:把 PineNote 从“已经很好用的本地笔记工具”进一步收敛为“可以稳定对外发布的本地知识工作台”。 ### 0.4.1 本次发布范围 - 历史版本 / 快照恢复 - 手动 `记录版本` - 自动备份计划 - 数据目录 / 备份目录直达 - 批量整理 - 搜索范围切换:`全局` / `当前视图` - 标签管理页 - 第三屏布局与标签区稳定性收口 ### 0.4.2 已确定开发范围 - `Step 7`:附件能力 / 粘贴截图 - `Step 6`:PDF 导出 - `Step 8`:双向链接 / 关联笔记 ### 当前不纳入后续主线 - `HTML` 导出 - 模板 ### 当前版本相关文档 - [docs/ROADMAP_0.4.1.md](./docs/ROADMAP_0.4.1.md) - [docs/TASKS_0.4.1.md](./docs/TASKS_0.4.1.md) - [docs/ROADMAP_0.4.2.md](./docs/ROADMAP_0.4.2.md) - [docs/TASKS_0.4.2.md](./docs/TASKS_0.4.2.md)