Skip to content

0.1.3

Choose a tag to compare

@Losecloud Losecloud released this 25 Sep 10:27
· 9 commits to main since this release

词忆 (Word Memo) 0.1.3

本次更新集中于词典体系与可视化封面,另含学习模式交互增强。

词典体系

  • 修复导入 320MB 级词典(如 oaldpe)导致页面崩溃:导入改为按格式分流——.mdx 走 MDX 解析;.json / .js 内容本身就是最终数据格式,改由原始字节直传落盘(raw=1 通道),不再经历 file.text() → JSON.parse → JSON.stringify → 服务端 JSON.parse 的多副本往返。
  • 修复文件名双后缀:oaldpe-dict.json 曾被拼成变量名 OALDPE_DICT_DICT 并落盘为 oaldpe-dict-dict.json。改为先剥离 -dict 后缀再拼变量名;变量名保留 Unicode 字母(含中文名词典)。
  • 修复词典样式 / 图片 / 真人发音不加载:资源目录(mdd)改按文件名主干探测,而非可被显示名改写的名称;/save-dict 回传 mdd、导入时保留已知 mdd、启动时比对清单自愈。
  • Obsidian 端启动提速:扫描用户词典时不再全量读入 .json(oaldpe 达 320MB)。
  • 修复「首选查词词典」悄悄变动:此前「当前浏览的词典」与「用户首选」共用一个存储键,导致临时查看其他词典、禁用词典兜底、导入新词典都会覆写首选,用户始终选不中想要的。现已拆分为两个概念,并一并修复:禁用词典时撤销首选、设为首选不再静默失败、失效首选不再标记「首选」。
  • 导入失败提示区分「file:// 直开」与「本地服务未启动」,给出对应引导。

混沌星云

  • 修复「星团同类」连线整体失效:分类权重 0.6 × 1/3 在浮点下为 0.19999999999999998,低于连线门槛 0.2,使「仅一级分类相同」的词对被判为无关联(全量词典实测 5254 对),并与孤立词判定自相矛盾——有同类却不画线。改为权重查表,精确命中门槛。
  • 孤立词圆标常驻灰色:与词单中任何其他词都不成连线的词,无需悬停即显示灰色圆标;悬停 / 选中时的周圈发光一并转灰。

学习与复习

  • 「记得么」模式:答对浮出释义与例句(绿色主色调)、「不记得」按橙色呈现并可转「如何记忆?」;新增反悔窗口——浮出后可点「不记得」改判。
  • 「看单词选释义」Pro 版:长按激活(填充条扫入作进度反馈),干扰项改取自基础词典的形近 / 近似词释义;基础词典缺失时引导下载,运行时读不到则退回普通干扰项。
  • 「换个模式」弹窗取代系统 confirm:默认沿用当前模式(即再来一轮),可多选,后续每个词从所选模式中随机轮换。
  • 结算页按钮显示本轮复习进度「本轮复习数 / 到期总数」;新增词书级「自动切换下一题」秒数。
  • 修复复习窗口卡死:当剩余单词全为不可练(无释义 / 已标太简单)时误判「已学完」,现改为提示并推进。

体验与稳定性

  • 原生 alert 改为网页顶部静默提示(不打断操作、不改变选中状态);confirm 等防误点确认仍保留原生阻断式交互。
  • 基础词典在 file:// 直开时改由 data/englishwords-dict.js 的 <script> 兜底(浏览器禁止页面直接读取本地 json)。
  • 混沌星云与蒲公英封面的星团分类改为惰性加载基础词典,未就绪期间正常渲染,不再为等 8.8MB 白屏。
  • 「关于」页改为读取线上 README,不再内嵌快照。

文档

  • README 重写为中英双版;修复插件详情页全文居中(<div align="center"> 未闭合,导致标题跑到页面中间)。
  • manifest 描述更新,补充蒲公英聚类与 WebGL 混沌星云。

A note on the build: main.js is a brotli+base64 container (WMB1 magic) holding the app's HTML/CSS/JS. It is not obfuscated or encrypted — it can be unpacked reproducibly, and the build script (tools/web2ob.py) lives in the companion repo Losecloud/VocRec. No remote code is downloaded or executed at runtime; all third-party libraries ship inside the bundle. The plugin also starts a local static server on 127.0.0.1 to serve its UI to the preview iframe. Network use is documented in the README: opt-in dictionary downloads, the user's own AI/API keys, and two public hot-topic ranking endpoints.