Skip to content

阅读器内聚划线笔记与宿主回调 - #18

Open
hehetoshang wants to merge 1 commit into
mainfrom
agent/talebook/e4804b22
Open

阅读器内聚划线笔记与宿主回调#18
hehetoshang wants to merge 1 commit into
mainfrom
agent/talebook/e4804b22

Conversation

@hehetoshang

Copy link
Copy Markdown
Collaborator

背景

Talebook 模板在 candle-reader 外部再次实现了划线笔记工具栏和面板,两套选区监听与 UI 相互覆盖。本改动把划线笔记完整收回阅读器,并为宿主保留纯数据回调边界。

关键改动

  • 新增阅读器原生的划线、笔记编辑、笔记列表、CFI 定位、成功/错误反馈与本章数量提示。
  • 新增可选 annotation_callbacks.load/save 契约;未注入时按书写入浏览器 localStorage
  • 设置中新增“划线笔记”开关;关闭时隐藏入口和选区动作、清除渲染标记,但不删除数据。
  • 补齐窄屏布局、键盘焦点、弹窗字段错误、持久错误提示、reduced-motion 与无精确 CFI 的展示状态。
  • README 增加宿主接入契约与兼容性说明。

实际验证

  • npm run lint:通过。
  • npm run test:e2e -- --workers=1:42 passed。
  • npm run build:通过。
  • Playwright Chromium 实际渲染:320×720、414×896;320px 下无横向溢出,6 个导航目标均约 53×56px,选区工具栏和编辑框未裁切,引用文本对比度约 7.24:1。

并行 E2E 在高负载下出现过既有 audiobook 自动播放高亮的时序超时(最终一次默认 2-worker 运行 41 passed / 1 failed);串行完整套件 42 passed,失败用例单独重跑通过。本次未修改有声书定位实现。

风险与兼容性

  • annotation_callbacks 为可选新增参数,旧初始化代码不需要修改。
  • 回调必须同时提供 loadsave;已注入回调但调用失败时不会静默写本地,避免宿主与本地分叉。
  • localStorage 以 book_id 隔离,缺省时使用 book_url
  • 关闭功能不清理既有本地或宿主数据,重新开启即可恢复。

截图

当前执行环境只有 CLI 提交通道,无法直接向 GitHub PR 上传本地截图;上述两个移动视口已通过 Playwright 实际渲染并人工检查。

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@hehetoshang