feat(nav): 书架进导航(车道 G)——图标钮出舱钉死右侧
- 评估实数:第 6 项增量 zh +34-44/en +49-51px,旧结构 en 达
102-125px 滚区且主题钮出首屏——收纳策略=搜索/语言/主题三钮
移出 nav 滚动区钉死 .nav-actions 常驻右侧,内滚只波及文本项,
任何宽度三功能钮可见(搜索是移动端主发现路径不可藏)
- nav 序:开源 · 文章 · 书架 · 图库 · 瞬间 · 关于(书架=阅读轨
延伸紧跟文章);ui.ts +nav_books/kbd_gs_books
- Keyboard g-chord 增 s 键(g s→书架,双轨前缀路由),帮助表
按既有 kbd_* 词条模式接入
- E2E en 导航断言扩为 ≥6 且含 /en/books/
- 已知余量:en 390-430 文本区滚 ~114px(词条已最短化,再省需砍
语义留观);zh 全宽段 1-16px 基本无感
车道:op-gitea(八格扫描+E2E 33/33);收编验收:序/双轨 href/
三宽度三功能钮可见性/g s 实跳全过
验证: pnpm astro build exit 0;本地 dist 六项 playwright 全过;
E2E 33/33(推送后 staging 复验)
Spec: none (导航扩容+出舱策略,车道级交付)
Co-authored-by: GLM-5.3
This commit is contained in:
1 parent
73c31ffb2a
commit
3a59edc79a
4 files changed
+44
-27
No files matched your search
+1
-1
@@ -83,7 +83,7 @@ ok('en 图库可达', page.url().includes('/en/gallery'));
|
||||
// E 车道回归:en 页导航必须整轨 /en/(用户实测"切语言后点导航回中文"的防线)
|
||||
const enNavHrefs = await page.$$eval('nav a[href^="/"]:not(.nav-lang)', (as) => as.map((a) => a.getAttribute('href')));
|
||||
const enNavBad = await page.$$eval('nav a[href^="/"]:not(.nav-lang)', (as) => as.filter((a) => !(a.getAttribute('href') ?? '').startsWith('/en/')).map((a) => a.outerHTML.slice(0, 140)));
|
||||
ok('en 导航全轨 /en/ 前缀', enNavBad.length === 0 && enNavHrefs.length >= 5, enNavBad.join(' ; ') || enNavHrefs.join(' '));
|
||||
ok('en 导航全轨 /en/ 前缀', enNavBad.length === 0 && enNavHrefs.length >= 6 && enNavHrefs.includes('/en/books/'), enNavBad.join(' ; ') || enNavHrefs.join(' '));
|
||||
const enBrand = await page.getAttribute('a.brand', 'href');
|
||||
ok('en 品牌链接指 /en/', enBrand === '/en/', String(enBrand));
|
||||
|
||||
|
||||
Reference in new issue
Block a user