Note Sync Now v2.0 - 全面升级
日期: 2025-11-25
概述
本次更新对项目进行了全面升级,包括编辑器、性能、UI/UX、移动端适配等多个方面的改进。
新增功能
1. 代码编辑器升级 (CodeMirror)
- 语法高亮: 支持 Markdown、JavaScript、Python、HTML、CSS、JSON 等多种语言
- 智能功能: 自动补全、括号匹配、代码折叠
- 自定义设置: 字体大小、Tab 大小、行号显示、自动换行
- 主题支持: 深色/浅色主题自动切换
2. Markdown 预览增强
- 代码块高亮: 使用 Prism 语法高亮显示代码块
- GFM 支持: 表格、任务列表、删除线等 GitHub 风格 Markdown
- 分屏模式: 支持编辑/预览/分屏三种视图模式
3. 历史记录管理
- 自动保存: 每次同步自动保存历史版本
- 版本恢复: 一键恢复到任意历史版本
- 清理功能: 支持单条删除或清空全部历史
- 本地持久化: 历史记录保存在浏览器 LocalStorage
4. 二维码扫描加入
- QR 码生成: 自动生成同步链二维码
- 移动端扫码: 手机扫码即可快速加入同步链
- URL 参数支持: 扫码后自动填充同步密钥
5. 文件导入/导出
- 导入文件: 支持 .txt、.md、.markdown 文件导入
- 导出文件: 导出为 Markdown 或纯文本格式
- 拖拽导入: (计划中) 支持拖拽文件导入
性能优化
1. 大文件传输
- 分块传输: 大于 50KB 的内容自动分块传输
- 增量同步: 减少不必要的全量同步
- 防抖处理: 可配置的同步延迟(默认 300ms)
2. 服务端优化
- 连接池管理: WebSocket + Polling 双通道
- 内存清理: 自动清理过期房间和会话
- 健康检查:
/health和/stats端点 - 优雅关闭: 支持 SIGTERM/SIGINT 信号
3. 前端优化
- 状态管理: 使用 Zustand 替代 useState,减少重渲染
- 懒加载: 组件按需加载
- 持久化存储: 设置和历史自动保存
UI/UX 改进
1. 现代化设计
- 毛玻璃效果: 背景模糊和半透明效果
- 动画过渡: 使用 Framer Motion 实现流畅动画
- 渐变和阴影: 橙色主题渐变和发光效果
2. 响应式布局
- 移动端优先: 完全响应式设计
- 侧边栏收起: 可折叠侧边栏,移动端自动隐藏
- 触摸优化: 44px 最小触摸目标
3. 深色模式
- 系统跟随: 支持系统深色模式偏好
- 手动切换: 一键切换深色/浅色主题
- 状态持久化: 主题设置自动保存
4. 国际化
- 中英双语: 完整的中文和英文界面
- 一键切换: 顶栏快速切换语言
- 本地化: 日期、提示消息本地化
技术栈升级
新增依赖
{
"@codemirror/lang-*": "^6.x", // 代码编辑器语言支持
"@uiw/react-codemirror": "^4.21", // React CodeMirror 封装
"framer-motion": "^10.16", // 动画库
"zustand": "^4.4", // 状态管理
"qrcode.react": "^3.1", // 二维码生成
"react-hot-toast": "^2.4", // Toast 通知
"react-syntax-highlighter": "^15.5", // 代码高亮
"lodash.debounce": "^4.0", // 防抖函数
"idb-keyval": "^6.2" // IndexedDB 封装
}
项目结构重构
src/
├── components/
│ ├── Editor/
│ │ ├── CodeEditor.jsx # CodeMirror 编辑器
│ │ └── MarkdownPreview.jsx # Markdown 预览
│ ├── Header/
│ │ └── Header.jsx # 顶栏组件
│ ├── Landing/
│ │ └── Landing.jsx # 登录页
│ ├── Sidebar/
│ │ └── Sidebar.jsx # 侧边栏
│ └── index.js # 组件导出
├── hooks/
│ └── useSocket.js # Socket 连接 Hook
├── store/
│ └── useStore.js # Zustand 状态管理
├── utils/
│ ├── crypto.js # 加密工具
│ └── translations.js # 国际化翻译
├── App.jsx # 主应用
├── main.jsx # 入口文件
└── index.css # 全局样式
服务端更新
新增功能
GET /health- 健康检查端点GET /stats- 服务统计端点request-sync- 重连同步请求ping-latency- 延迟测量update-ack- 更新确认
配置优化
maxHttpBufferSize: 10MBpingTimeout: 60spingInterval: 25s- 支持 WebSocket 和 Polling
使用说明
安装依赖
# 前端
cd brave-sync-notes/client
npm install
# 后端
cd brave-sync-notes/server
npm install
启动开发服务器
# 后端
cd brave-sync-notes/server
node index.js
# 前端
cd brave-sync-notes/client
npm run dev
生产构建
cd brave-sync-notes/client
npm run build
后续计划
- PWA 支持(离线使用)
- 本地文件夹同步
- 多文件/笔记本支持
- 协作光标显示
- 端到端加密密钥轮换
- WebRTC P2P 直连(减少服务器依赖)
兼容性
- 浏览器: Chrome 90+, Firefox 88+, Safari 14+, Edge 90+
- 移动端: iOS Safari 14+, Chrome for Android 90+
- Node.js: 16.x 或更高版本