Files
Nexus/docs/design/plans/2026-06-11-browser-nav-bookmarks.md
2026-07-08 22:31:31 +08:00

44 lines
1.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 实施说明 — 浏览器网站导航(收藏)
> 设计:`docs/design/specs/2026-06-11-browser-nav-bookmarks-design.md`
## 涉及文件(计划)
| 文件 | 动作 |
|------|------|
| `server/utils/browser_ui_state.py` | ✅ `nav_links` 解析与上限 |
| `server/api/browser.py` | ✅ `BrowserNavLinkState` / PUT 字段 |
| `tests/test_browser_ui_state.py` | ✅ `test_parse_nav_links` |
| `frontend/src/composables/useGlobalBrowser.ts` | `navLinks` + add/update/remove + persist |
| `frontend/src/components/GlobalBrowserPanel.vue` | 侧栏 Tab、列表、添加/编辑对话框、空白页快捷入口 |
| `docs/changelog/2026-06-11-browser-nav-bookmarks.md` | 完成后记录 |
## 前端步骤
1. `BrowserNavLink` 类型与 `applyServerState` / `persistState` 带上 `nav_links`
2. `addNavLink(title, url)` · `updateNavLink(id, …)` · `removeNavLink(id)`
3. `addCurrentPageToNav()` — 取 `activeTab.url``addressDraft`
4. 侧栏:`sidebarMode: 'nav' | 'history' | null`
5. 对话框:`v-dialog` 名称 + URL`normalizeBrowserUrl` 校验
6. 空白页:`v-chip` / 列表展示 `navLinks`,点击 `openUrl`
## 测试要点
```bash
pytest tests/test_browser_ui_state.py -q
cd frontend && npm run type-check
```
- 添加 3 条导航 → PUT → GET 往返一致
- 超 64 条截断;非法 URL 过滤
- UI:编辑后刷新仍显示
## 回滚
- 前端未发版:仅后端多返回空 `nav_links`,兼容
- 回滚前端:导航 UI 消失,DB 中 JSON 保留无害
## 依赖
- 全局浮动浏览器(`GlobalBrowserPanel` + `/api/browser/state`)已上线