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

SmileXNote 预览图
SmileXNote 预览图

后端基于 .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)三种笔记类型,创建时选定后不可变,满足不同场景的记录需求。

富文本编辑:WangEditor
富文本编辑:WangEditor
Markdown 编辑:实时预览与目录导航
Markdown 编辑:实时预览与目录导航
思维导图:节点拖拽与导出
思维导图:节点拖拽与导出

2. Lucene 全文搜索

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

笔记查看与搜索
笔记查看与搜索

3. 自动保存

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

自动保存:防抖保存状态提示
自动保存:防抖保存状态提示
未保存提示:离开前拦截确认
未保存提示:离开前拦截确认

4. 草稿箱与回收站

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

草稿箱:未发布笔记集中管理
草稿箱:未发布笔记集中管理
回收站:恢复与永久删除
回收站:恢复与永久删除

5. 笔记历史版本

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

笔记历史版本
笔记历史版本

6. 笔记分享

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

笔记分享
笔记分享

7. 置顶与待办

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

待办笔记
待办笔记

8. 个人设置与多用户体系

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

登录 / 注册:邀请码 + IP 风控
登录 / 注册:邀请码 + 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
ORMSqlSugarSQLite 存储 + 全局软删除过滤器
全文搜索Lucene.NETSmartChineseAnalyzer 中文分词 + 关键字高亮
认证JWT + BCryptBearer Token,7 天有效期,登录失败锁定
日志SerilogConsole + 双文件滚动 + SQLite 日志落库
前端框架Vue 3 + TypeScriptComposition API + script setup
UI 组件Element Plus全量引入 + 中文语言包
富文本编辑器WangEditor富文本笔记编辑
Markdown 编辑器md-editor-v3Markdown 编辑 + 自定义目录导航
思维导图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 免递归快速查询子孙分类,父分类变更自动重建路径