SmileXNote 是一个全栈笔记管理应用,采用前后端分离架构,支持富文本、Markdown、思维导图三种笔记格式。项目从零构建,覆盖笔记分类管理、Lucene 全文搜索、笔记分享、笔记置顶/待办、草稿箱、回收站、笔记历史版本、系统日志、数据库备份与管理后台等完整能力,是一款开箱即用的个人知识管理工具。

后端基于 .NET 10 构建,使用 SqlSugar ORM + SQLite 存储,集成 Lucene.NET 中文分词全文搜索与 JWT 认证;前端基于 Vue 3 Composition API + TypeScript + Element Plus,配合 WangEditor / md-editor-v3 / simple-mind-map 三种专业编辑器,提供流畅的笔记编辑体验。
1. 三种笔记格式
支持富文本(WangEditor)、Markdown(md-editor-v3)、思维导图(simple-mind-map)三种笔记类型,创建时选定后不可变,满足不同场景的记录需求。



2. Lucene 全文搜索
基于 Lucene.NET + SmartChineseAnalyzer 中文分词的全文搜索,搜索结果按相关度降序排列,支持关键字高亮(标题与摘要),可与分类过滤交叉使用,笔记增删改时实时同步索引。

3. 自动保存
内容变更后防抖自动保存(富文本/Markdown 60 秒、思维导图 300 秒),通过纯文本 diff 跳过无变更提交,首次创建笔记自动转为正式笔记,配合未保存提示避免误操作丢失内容。


4. 草稿箱与回收站
草稿箱:新建笔记默认草稿状态,不立即入库,首次自动保存时才创建,草稿不记录历史版本、不更新分类计数、不加入全文索引。回收站:删除笔记软删除进入回收站,可恢复或永久删除,回收站笔记 30 天后由后台任务自动清理。


5. 笔记历史版本
更新笔记时自动保存旧快照为历史版本,SHA256 内容哈希去重避免重复存储;可预览任意历史版本并一键恢复,恢复前自动将当前状态存档,误操作随时可回退。

6. 笔记分享
支持为任意笔记创建分享链接,可设置过期时间或永久有效,通过分享令牌公开访问,无需登录即可查看分享内容,是团队协作与内容传播的便捷通道。

7. 置顶与待办
支持笔记置顶(列表排序置顶优先)与笔记待办(一键筛选待办清单),配合多分类树形管理与物化路径快速检索,让知识管理井然有序。

8. 个人设置与多用户体系
支持独立注册的多用户模式,用户名/邮箱唯一校验,支持用户名或邮箱登录;个人设置支持资料修改、密码修改与头像上传,登录失败 5 次自动锁定 10 分钟,注册邀请码 + IP 级别风控保障安全。


9. 管理后台
管理员专属后台,提供仪表板(系统资源监控)、用户管理(禁用/启用/删除)、邀请码管理、数据库备份管理、系统日志查询等能力,配合定时备份与日志自动清理,运维省心。




后端分层架构
Controllers(API 层) └─ Auth / Notes / Categories / Upload / User / Admin / SystemConfig / Share Services(业务层) └─ NoteService / LuceneSearchService / ShareService / DatabaseBackupService / 清理任务 Data(数据层) └─ SqlSugar ORM + SQLite(App_Data/SmileNote.db)+ 全局软删除过滤器 Common(公共层) └─ 统一响应、业务异常、GUID 辅助、链路追踪、JSON 脱敏
技术选型一览
| 层次 | 技术 | 说明 |
|---|---|---|
| 后端框架 | .NET 10 | 控制器风格 Web API |
| ORM | SqlSugar | SQLite 存储 + 全局软删除过滤器 |
| 全文搜索 | Lucene.NET | SmartChineseAnalyzer 中文分词 + 关键字高亮 |
| 认证 | JWT + BCrypt | Bearer Token,7 天有效期,登录失败锁定 |
| 日志 | Serilog | Console + 双文件滚动 + SQLite 日志落库 |
| 前端框架 | Vue 3 + TypeScript | Composition API + script setup |
| UI 组件 | Element Plus | 全量引入 + 中文语言包 |
| 富文本编辑器 | WangEditor | 富文本笔记编辑 |
| Markdown 编辑器 | md-editor-v3 | Markdown 编辑 + 自定义目录导航 |
| 思维导图 | simple-mind-map | 节点编辑、图片预览与导出 |
体验说明
欢迎试用 SmileXNote
可访问演示站点体验三种笔记格式与完整笔记管理功能。演示环境部分敏感操作受限制,如您对项目感兴趣或有任何建议,欢迎通过博客的联系方式反馈。
其他亮点
- 统一响应:所有接口返回 ApiResponse(code / message / data / traceId / timestamp),业务失败统一抛出 BusinessException
- 三栏可拖拽布局:左侧边栏 + 笔记列表(可拖拽调宽)+ 编辑区,编辑器全屏自动隐藏侧栏
- 无限滚动分页:笔记列表支持加载更多模式,hasMore 标志控制
- 图片安全上传:魔数校验防 Content-Type 伪造,按用户按月目录存储
- XSS 防护:前端 sanitizeHtml 过滤 script 标签与 on* 事件属性,敏感字段 JSON 脱敏
- SEO 支持:useSEO 组合式函数动态设置 title / meta / OG 标签,支持结构化数据
- 数据库备份:每天凌晨 3 点 VACUUM INTO 一致性快照,保留最近 7 个备份文件
- 分类物化路径:HierarchyPath 免递归快速查询子孙分类,父分类变更自动重建路径