在工具箱https://yicool.com.cn/tools 里设计一个功能强大的探索、研究、学习佛学里的第八识“阿赖耶识”的工具。
这是一个较大的新工具开发。先建立任务清单并确认注册位置。
注册位置已确认。现在编写内容数据(第一批:八识/四相/流转/辨析/书单)。
现在编写核心词条词典(第一批 20 条)。
追加词条第二批(第 21–40 条:识的差别 / 修学次第 / 经典依据 / 易混辨析)。
现在编写自测题库(20 题,含解析与难度分级)。
数据就绪。现在开发页面(五页签结构)。
现在开发样式(三端响应式 + 主题变量)。
现在开发核心逻辑(五页签、词典检索、图谱交互、测验判分、笔记持久化)。
补上 toast 样式与测验结果修正后的样式。
现在注册路由、工具目录与 i18n。
现在补 en.js 词条(自动提取页面与 JS 的所有 i18n 键,一次性补齐)。
修正页面(页签 i18n 硬编码 + 标题笔误)并补全译文。
i18n 就绪。现在编写测试(jsdom 行为 + 静态守护)。
现在补回被误删的 renderQuizStat 首行并新增 renderQuizLevels。
现在编写静态守护脚本(PHP 语法、数据完整性、XSS、i18n 全量对账)。
静态守护全过。现在做真实浏览器三端验证(生成 mock + 交互脚本)。
mock 生成器顺序错了(先剥 PHP 导致资源路径变空)。修正。
三处修正:平板/手机列宽断点与测试测量时机。
浏览器缓存了旧 CSS(已知坑)。给 mock 资源加缓存破坏参数。
CSS 实际正确——是测试用 split(' ') 误判(minmax(0px, 1fr) 含空格)。改用元素位置分组统计列数。
21/21 全过。看一下桌面与手机端视觉效果。
修两处 emoji 渲染问题(🕉 在 Windows 分解、📋 缺字形)。
全部测试通过。现在构建部署包与部署脚本。
部署包就绪。共享文件(index.php / functions.php / en.js)已改动,按铁律同步全包并重打包。
全部一致、无回归。最后清理临时文件并更新记忆。
已在工具箱新增 「☸ 阿赖耶识研习」(/tools/alaya)——纯前端零后端零 SQL,内容为静态 JSON 快照,笔记与进度仅存本机。
五大研习模块
① 学习路径 — 四阶段(入门→进阶→精研→实修),每阶段给出应读经典、读法提示与可检验的学习目标(《八识规矩颂》《唯识三十颂》《成唯识论》《摄大乘论》《瑜伽师地论》《解深密经》《楞伽经》等);勾选书目 → SVG 进度环 + 阶段进度条自动更新。
② 核心词典 — 40 条词条 / 6 组(核心概念·识的差别·四相与位相·修学次第·经典依据·易混辨析),每条含:梵文、别名、一句话定义、详解、出处、修学提示、易混辨析;支持名称/别名/梵文全文检索、分类筛选、展开详情、「记入笔记」「复制词条」。
③ 识的图谱 — 交互式六图:
- 八识总览(8 卡可点,第八识金色标出;含所缘/自体/与烦恼关系对照)
- 第八识四相等(自体相 / 因果相 / 作用相 / 位相,逐相点击看释义与经典句)
- 种现熏习循环图(SVG:现行→种子→新种子→再熏的闭环)
- 见道至种现熏习六阶段流转
- 七识对照表(第八识/第七识/第六识逐项对照,sticky 表头 + 内部横滚)
- 9 条常见误解辨析(✗ 通俗说法 / ✓ 教理澄清:如「阿赖耶识=潜意识/灵魂/硬盘」)
④ 自测题库 — 20 题(单选/多选/判断),三级难度,提交即判分并标绿正确项、给出解析;结束出成绩报告、错题本与「重做错题」。
⑤ 研读笔记 — 标题/正文/关联词条/标签,可搜索、编辑、删除,导出 Markdown。
设计上遵循站内规范:满屏保留左导航、极简折叠按钮、深浅双主题变量、三端响应式(桌面多列 / 平板两列 / 手机单列 + 44px 触控 + 16px 输入防 iOS 缩放)。
验证
_test_alaya.js108 断言全过(五模块行为 + 持久化 + 页签)_chk_alaya_php.js63 项全过(PHP 语法/路由目录/41 个 id 无重复/数据完整性/答案索引合法/XSS 守护/i18n 全量对账)- 真实浏览器(msedge)21 项全过,三端横向溢出 0、0 控制台错误
部署
alaya-deploy.tar.gz 233,408B / 10 文件 TAR_MATCH_OK;共享文件已同步 188 个部署包并重打包,审计 stale=0。上线需你手动执行:
scp alaya-deploy.tar.gz root@yicool.com.cn:/root/ && ssh "cd /root && tar -xzf alaya-deploy.tar.gz && cd alaya-deploy && bash deploy-alaya.sh"
无需 SQL,Ctrl+F5 后访问 /tools/alaya,工具箱「实用工具」分类中会出现「☸ 阿赖耶识研习」卡片。
我先浏览工作区,了解 lawfile 与 alaya 两个工具的代码结构。
我先创建任务清单,然后读取相关文件。
lawfile 的排版重构已在文件头标注「2026-10-24 三端排版轮」(本工作区此前已完成)。我先运行 alaya 既有测试与 lawfile 回归,确认现状。
既有 alaya 测试全过(63+108)。现在深入分析数据文件与测试脚本,找出潜在 bug。
PowerShell 内联引号被破坏(已知坑),改写脚本文件执行。
现在开始修复 alaya。先确认文件行尾格式,然后重写 alaya.js。
lawfile 既有测试全过。现在校验 lawfile 部署包同步状态与浏览器实测。
playwright-cli 默认 chrome 未安装。改用 playwright-core + msedge channel 直接写验证脚本(与既有 browser_check 同方案)。
lawfile 三端实测 20/20 全过。查看桌面截图确认视觉效果。
弹窗与满屏布局正常。再拍一张无弹窗的桌面图与手机图确认整体视觉。
lawfile 任务完成(既有测试 + 20 项浏览器实测全过、部署包同步)。现在转向 alaya 全面修复。
转换为 CRLF 行尾并做语法检查:
现在修 alaya.css(sticky 表头失效、toast 安全区、焦点样式等):
更新 PHP 页面(三份数据全部 preload + 文件头注释):
现在把新增 i18n 词条写入 en.js(追加在最后一个 }; 前,保持 CRLF 与双引号格式):
运行既有测试,预期只有「难度下拉选项数」断言需同步:
更新 E1 断言并新增「全部难度」断言:
优化 saveNote:先构造新列表、落盘成功后才提交内存(避免写盘失败留下“幽灵笔记”):
现在编写 alaya 修复轮回归测试(静态守护 + jsdom 行为,覆盖每个修复点):
7 个失败中有一个暴露了真实缺陷:错误卡把图谱 .alaya-grid 整个清空导致重试后静态区块无法重建。修复错误卡实现(插入而非清空 + 成功时清除):
修正测试中的 4 处断言(A12 匹配到了 judge 里的合法 right++、C6/C7 用直接调用验证空态文案、I 用 defineProperty 打桩、J4 oldest=队尾):
jsdom 的 Storage 是 Proxy,实例级 defineProperty 无效,需打桩到原型。修正测试:
三套测试全过。把本轮修复的不变量补进静态守护 _chk_alaya_php.js:
现在做 alaya 真实浏览器验证。先找 8948 端口的静态服务脚本并重新生成 mock:
更新 alaya 浏览器验证脚本(覆盖本轮全部修复点 + 三端排版),改用 8941 服务:
工具名笔误且内容被截断,重写完整文件:
29/30 过。唯一失败是测试自身读到了已替换的旧节点(aria 应重新查询)。修正:
alaya 浏览器实测 30/30 全过。查看截图确认视觉效果:
alaya 三端视觉正常(桌面笔记编辑流、手机图谱均验证)。现在检查部署脚本并补充自检项:
修正误写的一行(第三个参数缺失且断言内容不对):
本地无 bash,通读修改后的脚本段确认正确性:
运行全站回归(路由 / i18n / 目录 / 共享文件审计):
共享文件全部一致。现在打包 alaya 部署包并同步共享文件:
验证重打包后的 alaya tar 内容确为最新版:
运行两个工具的全量最终回归:
全部通过。清理临时探针脚本并关闭后台服务:
保存本轮工作记忆:
两个任务已全部完成并通过验证。
一、/tools/lawfile 三端排版 + 电脑端满屏
本工作区该轮的改动已就绪,本轮完成了全面验证(真实浏览器 msedge 实测,20/20 通过、0 报错):
- 电脑端满屏(保留左侧导航):1440 下根容器 1424px、1920 下 1904px,无横向溢出;站点侧栏与折叠功能不受影响
- 排版科学化:统计条 6 列仪表盘(首列强调+分隔线)、工具栏「搜索+排序 / chips+计数」两行横排、卡片网格超宽分档(≥1600/≥2200)、预览弹窗 980px 读长文
- 三端:平板 820(统计 3 列、卡片 3 列)、手机 390(统计 2 列、卡片 2 列、触控 ≥40px、输入 16px 防 iOS 缩放)、浅色主题无溢出
- 回归:
_test_lawfile.js84、_chk_lawfile_php.js168、路由 25 全过;部署包与主树一致
二、/tools/alaya 全面修复 + 性能优化
修复了 10 个真实 bug/缺陷(均有断言守护):
| # | 问题 | 修复 |
|---|---|---|
| 1 | 笔记「编辑」保存变成重复新增,原笔记永远改不掉 | 编辑态按 id 原地更新 + 高亮 |
| 2 | 勾选书目/答题后整表重建,键盘焦点丢失 | 局部更新 + 焦点精准恢复(判分后焦到「下一题」) |
| 3 | 错题本答对永不移除,反复出已掌握的题 | 答对即移出错题本 |
| 4 | 空池提示张冠李戴;默认锁 l1 仅 6 题 | 按模式分文案 + 新增「全部难度」 |
| 5 | 加载失败只提示一个面板、无重试、请求挂起永久白屏 | 五面板错误卡 + 重试 + 15s 超时 + 代次守卫 |
| 6 | localStorage 写满时笔记「保存成功」但刷新即丢 | 落盘成败返回 + toast,不留幽灵笔记 |
| 7 | 脏存档(坏 JSON/非数组/非布尔)可致渲染异常 | 三组白名单校验 + 300 条上限淘汰最旧 |
| 8 | 词条卡片鼠标-only,键盘不可达 | tabindex/role/aria-expanded + Enter/Space |
| 9 | 点八识/四相全量重建 27 个区块(含静态表) | 静态一次 + 选择态局部更新 |
| 10 | 对照表 sticky 表头从未生效(overflow-x:auto 陷阱) | 容器封顶 + 边框 separate 化,实测吸顶偏移 1px |
性能:三份 JSON 全部 preload、图谱/路径局部渲染、卡片 contain、超宽屏阅读上限。
测试:_chk_alaya_php.js 63→85、_test_alaya.js 110、新增 _test_alaya_fixes.js 80 全过;新增 _alaya_browser_check2.js 真实浏览器 30/30(焦点保留、Enter 展开、吸顶、编辑流、错题本、失败重试、三端、浅色)、0 报错。
部署包已就绪(改了共享 en.js,已跑 sync + 51 包重打包,审计 stale=0):
scp alaya-deploy.tar.gz root@yicool.com.cn:/root/ && ssh "cd /root && tar -xzf alaya-deploy.tar.gz && cd alaya-deploy && bash deploy-alaya.sh"
lawfile 若线上尚未部署最新排版包,同样方式上传 lawfile-deploy.tar.gz。两者均无需 SQL,部署后 Ctrl+F5。