394613f516
- 设置入口 group 改为官方 interface(外观)分组 - 删除侧边栏 ThemeToggle 注入器及组件,设置页成为唯一入口 - verify-toggle.py 改为直接驱动主题状态并校验翻转 - 同步 README 与脚本文档,版本升级 1.0.6
68 lines
2.4 KiB
Markdown
68 lines
2.4 KiB
Markdown
# 暗色模式回归扫描与运行时验证工具
|
||
|
||
用 Playwright 驱动 Edge 对 Halo 后台做全路由深浅色残留扫描与运行时切换验证。
|
||
|
||
## 依赖
|
||
|
||
- Python 3.13 环境(本机:`D:\settings\settings\uv\my_uv_env`)
|
||
- Playwright(已安装):`pip install playwright` 或 `uv pip install playwright`
|
||
- 本机 Edge(Playwright 通过 `channel="msedge"` 复用,无需下载浏览器内核)
|
||
|
||
## 首次使用:登录
|
||
|
||
```powershell
|
||
D:\settings\settings\uv\my_uv_env\Scripts\python.exe scripts\login-wait.py
|
||
```
|
||
|
||
会弹出 Edge 窗口,登录 `https://blog.liuhangyv.top/console` 后脚本自动退出,
|
||
会话保存在 `scripts/.browser-profile/`(已被 gitignore,不会入库)。
|
||
|
||
已有登录态想复用,可显式指定 profile:
|
||
|
||
```powershell
|
||
D:\settings\settings\uv\my_uv_env\Scripts\python.exe scripts\scan-dark.py --profile scripts\.browser-profile
|
||
```
|
||
|
||
## 常用命令
|
||
|
||
```powershell
|
||
# 全路由深色扫描(历史 CSS 工作流保留)
|
||
D:\settings\settings\uv\my_uv_env\Scripts\python.exe scripts\scan-dark.py --local-css ui\build\dist\style.css --assert-zero
|
||
|
||
# 只扫指定页面
|
||
D:\settings\settings\uv\my_uv_env\Scripts\python.exe scripts\scan-dark.py --pages /console/posts,/console/users
|
||
|
||
# 浅色模式回归抽查
|
||
D:\settings\settings\uv\my_uv_env\Scripts\python.exe scripts\scan-dark.py --mode light --pages /console/dashboard,/console/posts
|
||
```
|
||
|
||
## 切换行为验证
|
||
|
||
```powershell
|
||
D:\settings\settings\uv\my_uv_env\Scripts\python.exe scripts\verify-toggle.py
|
||
```
|
||
|
||
部署新版插件后运行,会直接驱动 localStorage 中的主题状态,并检查:
|
||
|
||
- `data-halo-theme` 属性翻转
|
||
- localStorage 持久化翻转
|
||
- `data-darkreader-mode`(Dark Reader 注入状态)翻转
|
||
- `color-scheme` 翻转
|
||
- 侧边栏已不再注入 `.theme-toggle` / `.plugin-dark-mode-toggle` 按钮
|
||
|
||
状态翻转全部 PASS 且按钮已移除时返回 0。
|
||
|
||
## 输出
|
||
|
||
- `scripts/output/scan-results.json`:按路由分组的结果
|
||
- `scripts/output/shots/*.png`:每页截图
|
||
- 均已被 gitignore,不入库。
|
||
|
||
## 注意事项
|
||
|
||
- 扫描会忽略 `img/canvas/video/svg/iframe`,避免把文章图片、编辑器画布等内容性
|
||
元素误判为界面残留。
|
||
- 路由从 Vue Router 动态发现,Halo 或插件升级新增页面后无需维护清单。
|
||
- `scan-dark.py` 主要为历史手工 CSS 工作流保留;当前暗色转换由 Dark Reader 负责,
|
||
运行时行为验证以 `verify-toggle.py` 为准。
|