# PineNote **Repository Path**: taote/PineNote ## Basic Information - **Project Name**: PineNote - **Description**: PineNote 是一款面向 Windows 10/11 的本地优先笔记应用,采用 Rust + Tauri v2 + TypeScript + Markdown + Git 架构,兼顾原生性能与轻量体积。 所有笔记以标准 Markdown 文件存储在本地,无私有格式,用任何文本编辑器都能直接打开。通过 Git 实现多设备同步与版本历史,配合浏览器扩展一键剪藏网页内容,数据完全透明可控。安装包仅 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-04-03 - **Last Updated**: 2026-06-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PineNote PineNote 是一款面向 Windows 10/11 的本地优先笔记应用,采用 Rust + Tauri v2 + TypeScript + Markdown + Git 架构,兼顾原生性能与轻量体积。 所有笔记以标准 Markdown 文件存储在本地,无私有格式,用任何文本编辑器都能直接打开。通过 Git 实现多设备同步与版本历史,配合浏览器扩展一键剪藏网页内容,数据完全透明可控。安装包仅约 3MB,却集 Markdown 所见即所得编辑、全文搜索、Wiki 双向链接、图片附件、Git 同步与 Web Clipper 于一身,适合长期稳定使用。 ## 界面预览 ### 阅读视图 ![阅读视图](docs/screenshots/image.png) ## 核心理念 PineNote 坚守三条核心价值观: 1. **数据永远在用户手里** — 所有笔记以标准 Markdown 格式存储在本地,无私有格式,用户随时可以完全掌控和迁移数据 2. **永远秒开** — 采用 Tauri + Rust + 原生 TypeScript 架构,不搞 Electron 级别的内存占用,追求启动即可用、编辑无延迟 3. **永远单机可用** — 不强制登录、不依赖网络、不需要云服务,断网也能正常工作,没有账号体系也能完整使用全部功能 ### 我们不做什么 为了保持「小而美、稳而快」的定位,以下功能明确不纳入主线: - 云端同步 / 在线协作(只做本地 Git 文件级同步支持) - 复杂的 3D / 力导向知识图谱(侧栏的辐射图谱只展示当前笔记的一跳关联,定位是「看清这篇跟谁有关系」,不是做全网图谱) - 插件生态系统(避免架构复杂度侵蚀启动速度和稳定性) - 跨平台过度扩张(深耕 Windows 体验,不盲目铺开多端) ## 当前版本 当前版本:`2.0.6` PineNote 2.0 是一次架构重构版本,从 SQLite 数据库存储切换为纯 Markdown 文件系统存储,并新增 Git 同步能力。 ### 2.0 架构变化 - **文件系统存储**:所有笔记以 `.md` 文件存储,目录结构即分类结构,数据完全透明 - **Git 同步**:支持配置 Git 远程仓库,一键提交推送与拉取,利用 Git 实现版本历史与多设备同步 - **配置文件化**:应用配置使用 TOML 文件,与数据目录一起可被 Git 追踪 - **移除 SQLite 依赖**:不再使用数据库,标签、搜索等均基于文件内容实现 - **统一 Markdown 编辑**:移除富文本编辑模式,统一为 Markdown 编辑 ### 2.0.6 增量 当前定位:启动崩溃彻底修复 + 微信文章剪藏完善。 - **修复启动崩溃(彻底版)**:ATX 标题 / 链接 / 图片 / 分隔线 / 列表标记的 widget `Decoration.replace` 在特定文档结构下仍可能跨行,触发 CodeMirror `RangeError` 导致启动报 `Cannot read properties of undefined (reading 'update')`。所有 widget replace 统一钳制到首行 - **修复微信伪列表丢失**:微信有序伪列表 `

` 无 `list-style`、仅子 `display:block` span 时被压成一行,现按内容自动识别 `N.` 序号按行拆分 - **诊断增强**:致命错误屏累积所有 `console.error`,暴露被吞的构造时根因 ### 2.0.5 增量 - **修复 Setext 标题跨行崩溃**:`Text\n===` 被解析为跨两行节点,`Decoration.replace` 跨行触发 CodeMirror 拒绝,改为只替换首行 ### 2.0.4 增量 - **剪藏元数据可编辑**:阅读视图属性面板双击即可修改来源 / 作者 / 发布日期 / 描述,Esc 关闭 - **修复微信代码块只抓第一行**:`

` 内多 `` 兄弟按 `\n` 拼接
- **修复代码框前大块空白**:跳过微信 `