feat: v3 增强 - FTS5全文搜索+双向链接/知识图谱+自动保存草稿+标签管理+实时预览编辑器+PWA
- FTS5中文分词搜索(需-tags=sqlite_fts5) - [[wiki链接]]反向链接+SVG知识图谱 - 自动保存草稿(不触发版本历史) - 标签重命名/合并/删除+使用统计 - 后台编辑实时预览+格式工具栏 - PWA manifest+service worker+移动端适配 - 冒烟测试扩至66例全通过
This commit is contained in:
@@ -656,3 +656,63 @@ await fetch('/api/notes', {
|
||||
- **待办清单**:前台渲染 `- [ ]` / `- [x]` 可勾选清单
|
||||
- **字数统计**:前台笔记详情显示字数与预估阅读时长
|
||||
- **回收站/版本历史/分享**:后台工具栏按钮 + 面板
|
||||
|
||||
## v3 新增功能(2026-08-11)
|
||||
|
||||
### FTS5 全文搜索
|
||||
|
||||
`GET /api/notes/search?q=关键词&page=1` 现使用 **SQLite FTS5 全文索引**,支持中文短词(1~2 字)与英文。
|
||||
|
||||
- 采用 `unicode61` 分词器 + Go 层对中文做逐字分词(`segmentCJK`),使每个汉字独立成词元,支持短词搜索
|
||||
- 索引在创建/更新/标签变更时增量维护,启动时全量重建
|
||||
- 搜索结果按 `bm25` 相关度排序,排除已删除笔记与目录
|
||||
- FTS 查询失败时自动回退到传统 LIKE 搜索
|
||||
- 构建需启用 `-tags=sqlite_fts5`(否则报 `no such module: fts5`)
|
||||
|
||||
### 双向链接 / 知识图谱
|
||||
|
||||
支持 `[[笔记标题]]` wiki 链接语法:
|
||||
|
||||
| 方法 | 路径 | 说明 |
|
||||
|------|------|------|
|
||||
| GET | `/admin/api/notes/:id/backlinks` | 反向链接(谁链接到了该笔记) |
|
||||
| GET | `/admin/api/graph` | 知识图谱数据 `{nodes:[{id,title}], edges:[{source,target}]}` |
|
||||
|
||||
- 后台编辑器支持点击 `[[链接]]` 跳转并高亮
|
||||
- 后台工具栏「🕸 知识图谱」以 SVG 图形化展示节点与链接关系
|
||||
|
||||
### 自动保存草稿
|
||||
|
||||
| 方法 | 路径 | 说明 |
|
||||
|------|------|------|
|
||||
| POST | `/admin/api/notes/:id/draft` | 保存草稿(body `{content}`),不触发版本历史 |
|
||||
| DELETE | `/admin/api/notes/:id/draft` | 清除草稿(保存正文成功后调用) |
|
||||
|
||||
- 后台编辑器每 8 秒自动保存未落盘内容
|
||||
- 打开笔记时若存在未保存草稿会提示恢复
|
||||
|
||||
### 标签管理
|
||||
|
||||
| 方法 | 路径 | 说明 |
|
||||
|------|------|------|
|
||||
| GET | `/admin/api/tags/usage` | 标签使用统计 `[{name,count}]` |
|
||||
| POST | `/admin/api/tags/rename` | 重命名 `{old_name,new_name}` |
|
||||
| POST | `/admin/api/tags/merge` | 合并 `{from,to}`(from 并入 to) |
|
||||
| DELETE | `/admin/api/tags` | 删除 `{name}` |
|
||||
|
||||
- 后台工具栏「🏷 标签管理」图形化操作
|
||||
- 重命名/合并/删除会同步更新所有含该标签的笔记及其全文索引
|
||||
|
||||
### 富文本所见即所得(编辑器增强)
|
||||
|
||||
- 后台编辑器新增**实时预览**:编辑右侧即时渲染 Markdown
|
||||
- 新增**格式工具栏**:加粗/斜体/标题/列表/链接/代码/图片/表格/任务清单
|
||||
- 仍以 Markdown 为存储源(保证 FTS/反向链接/导出兼容),预览所见即所得
|
||||
|
||||
### 移动端 / PWA
|
||||
|
||||
- 新增 PWA 支持:`/manifest.json`、`/sw.js`、图标 `icon-192.png`/`icon-512.png`
|
||||
- 前台页面响应式适配手机(侧栏折叠、字号/按钮优化)
|
||||
- 可添加到主屏幕离线使用
|
||||
|
||||
> 注:FTS5 需用 `-tags=sqlite_fts5` 编译;`note_search` 虚拟表由 Go 代码维护(手动管理而非 SQL 触发器),保证中文分词正确。
|
||||
|
||||
Reference in New Issue
Block a user