mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-22 13:21:20 -08:00
test(site): [SITE-05] enforce built links and validate online editors
This commit is contained in:
1 parent
6b580d1667
commit
fb78328c43
17 files changed
+2122
-15
No files matched your search
@@ -21292,6 +21292,10 @@
|
||||
"file": "scripts/site-build/i18n.ts",
|
||||
"sha256Lf": "394b8f19d795980f49cf1557b79b4708f3419689d0fa53be348b83b655d9a984"
|
||||
},
|
||||
{
|
||||
"file": "scripts/site-build/links.ts",
|
||||
"sha256Lf": "004eac68a543ef3f936b3e32bda2d7226b319e82df2ce9180b0c00eb69c576bf"
|
||||
},
|
||||
{
|
||||
"file": "packages/artplayer-vitepress/build/markdown.ts",
|
||||
"sha256Lf": "6d639e25bab97c973940661e2aac6f1034ab53ab1c016310a571ab52392819da"
|
||||
@@ -21356,7 +21360,7 @@
|
||||
"build:i18n": "node ./scripts/build-i18n.js",
|
||||
"build:test": "node ./scripts/build-test.js",
|
||||
"build:all": "yarn ci:build && yarn lint",
|
||||
"ci:build": "yarn build:types && yarn build all && yarn build:i18n && yarn build:ts && yarn build:llm && yarn build:vconsole && yarn build:console && yarn build:site-notices && yarn build:test && yarn build:docs && yarn test:imports",
|
||||
"ci:build": "yarn build:types && yarn build all && yarn build:i18n && yarn build:ts && yarn build:llm && yarn build:vconsole && yarn build:console && yarn build:site-notices && yarn build:test && yarn build:docs && yarn check:site-links && yarn test:imports",
|
||||
"build:types": "node scripts/build-types.mjs --write"
|
||||
},
|
||||
"siteManifest": {
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,56 @@
|
||||
# SITE-05 全站本地链接与编辑器验证
|
||||
|
||||
起点:`6b580d166747d2a1d460666d4259238beb851f4c`。本批加入持续可运行的链接门槛,
|
||||
并验证原在线编辑器和声明;SITE-05 保持 doing,未进入正式复盘。
|
||||
|
||||
## 实现和依赖
|
||||
|
||||
新增 `scripts/site-build/links.ts` 与薄 CLI `scripts/check-site-links.mjs`。
|
||||
`yarn check:site-links` 检查 docs/document 全部生成 HTML 的 href/src、本地文件、
|
||||
目录 index、中文/转义锚点和历史 name 锚点,并导入实际构建的 search-data 模块
|
||||
检查所有结果 URL;不是重新生成一份索引再声称发布索引正确。索引缺失/重复/结构
|
||||
错误或空白会直接失败。HTML 脚本文本与 inert template 内容不作为可点击链接,
|
||||
不执行页面代码;HTML base 暂不支持时明确拒绝,不静默选错相对地址。外部 URL
|
||||
只列出,CI 不将整个第三方网络可用性作为确定性构建的条件。
|
||||
|
||||
初始 Linkedom TS 版本与 DOM lib 冲突,未加 skipLibCheck 或类型忽略。改用已有
|
||||
传递依赖 htmlparser2 10.1.0 的有类型解析器,并显式声明为根 devDependency。
|
||||
Yarn 只增加精确选择器,原版本/integrity 不变;没有新增传递包或播放器运行依赖。
|
||||
根冻结安装锁不变,严格检查为41个工具/1473个选择器。实现地图和命令写入
|
||||
scripts/site-build/README.md、站点 README、工具链、CI 与浏览器维护文档。
|
||||
|
||||
`ci:check` 增加提交产物检查,`ci:build` 在文档构建之后检查,失败退出非零。
|
||||
三组回归覆盖实体编码、相对/目录路径、缺失资源/锚点、无效URL及异常索引。
|
||||
已接入 test:site-build/test:node;未触发远端 Actions。
|
||||
|
||||
## 本地验证
|
||||
|
||||
Node24.21.0 / Yarn1.22.22:
|
||||
|
||||
- 67个生成页面、5766次本地引用、942条真实构建搜索结果,缺失文件/锚点均为0。
|
||||
报告列出82个外部URL;不是82个已验证外部锚点。
|
||||
- test:site-build 11/11,1334.8651ms;test:ci 80/80,5761.8837ms;均0失败/跳过。
|
||||
- typecheck:docs-tools、修改文件只读ESLint、严格工具链、site inventory和CI配置通过。
|
||||
- check:editor-types校验24份输出及当前/兼容编译器;check:site-assets校验5份产物/66路由。
|
||||
- source浏览器命令包含site-editor、site-loading、editor-declarations、editor-types、
|
||||
document-search及document-site。Playwright按正则匹配,实际还选中Ads/Audio/DASH/
|
||||
HLS/Thumbnail的编辑器类型文件;报告记录全部72项,三引擎各24项,0失败/跳过/重试。
|
||||
覆盖真实Monaco编译/运行、Ctrl-S、重复Run、语法错误保留旧播放器、CSS/脚本顺序、
|
||||
拒绝storage的降级、持久设置、声明加载失败清理、迟到示例不覆盖新Run、语言路由、
|
||||
嵌入代码URL/依赖转发及搜索交互。部分SDK用例有受控替代,不代表真实SDK或设备验收。
|
||||
|
||||
浏览器和静态结果见 [site05-links-editor.json](../baselines/site05-links-editor.json)。
|
||||
媒体库源码未变,不将本批浏览器检查替代安装包、真机或EX-03全部示例矩阵。
|
||||
|
||||
## 外部链接缺口
|
||||
|
||||
首次Node直连81个去掉fragment后的外部地址:2个200、79个连接/超时错误。
|
||||
检测系统代理后,用curl HEAD跟随重定向复测81个,每个一次、4并发、每请求15秒上限:
|
||||
42个200、39个404,无传输失败。HTTP成功只证明本次可达,不验证远端fragment或SDK功能。
|
||||
39个404全部是新增指南的GitHub master编辑源文件链接,本地源码存在,默认分支尚未
|
||||
包含它们。保留准确目标,不跳转到其他页面冒充编辑当前文件,也不擅自推送/合并。
|
||||
SITE-05继续doing,远端源码可用后重验;SITE-06最终交付仍依赖SITE-05和字体来源SITE-07。
|
||||
|
||||
共享输入变化后的21库候选刷新仍由REL-02处理;旧候选证据不代表当前共享指纹。
|
||||
回退本提交移除新检查、devDependency/脚本和记录;播放器API、生成文档URL不变。
|
||||
没有推送、部署、发布或启动用户保留的正式复盘。
|
||||
@@ -1,5 +1,9 @@
|
||||
# PR 检查和 Pages 操作说明
|
||||
|
||||
SITE-05 增加 `yarn check:site-links`:`ci:check` 校验已提交文档,`ci:build` 在重建
|
||||
文档后检查生成 HTML 的 href/src、本地文件/锚点及实际搜索索引。任一缺失使入口失败。
|
||||
外部 URL 只列入报告,在线编辑器和真实播放由浏览器矩阵另验;本地配置不代表远端运行。
|
||||
|
||||
同一20包安装映射的Windows WebKit26.6完整运行现已结束:bb2c12df3执行77文件/845项,
|
||||
694通过、13失败、138能力跳过、0重试,1214.860秒。失败包括8项Audio、1项Chapter、
|
||||
1项候选弹幕CPU间隔漏发和3项旧JASSUB;候选JASSUB三核心通过。见
|
||||
|
||||
@@ -23,7 +23,7 @@ chapter 试点可使用 `http://localhost:8082/?libs=./uncompiled/artplayer-plug
|
||||
2. 每次记录核心、插件、语言包和外部 SDK 的实际 URL、版本及产物内容标识。旧/新组合必须有意指定,不能把陈旧构建或误混版本作为候选验收证据。
|
||||
3. 独立用例使用隔离测试上下文或测试专属 origin,并明确 prod/ts/code/log 状态。不要清除用户日常 Chrome 的全部存储。单独设置连续 Run 用例,检查多实例全部销毁、监听器/DOM/资源清理及重复加载依赖的影响。
|
||||
4. common.js 在移动设备判断成立时转到 mobile.html;报告记录最终 URL,移动页通过不能计作桌面 Monaco 编辑器通过。
|
||||
5. 选中 TS 模式不等于严格类型检查通过;当前编辑器直接 eval 内容,不能假设可以运行任意 TS 语法。类型验收仍由固定版本 tsc 和真实消费者完成。
|
||||
5. TS 模式已由 Monaco worker 先检查语法并生成 JavaScript,再交给执行器;编译失败保留现有播放器。语义诊断不会自动阻止 Run,因此能够运行不等于严格类型检查通过。类型验收继续使用固定版本 tsc、Monaco 语义诊断和真实消费者。
|
||||
6. 优先使用许可明确的本地样本。外部 CDN、广告、流媒体和模型请求逐项登记;网络失败与播放器回归区分。受控测试可隔离无关外部请求并记录,实际 SDK 集成保留独立验收,不能一概屏蔽后声称完整通过。
|
||||
|
||||
## 从演示补成可靠回归
|
||||
|
||||
+1
-1
@@ -688,7 +688,7 @@
|
||||
- SITE-HLS-01: [记录](changes/2026-09-15-SITE-HLS-01-guides.md) [记录](baselines/hls-docs-validation.json)
|
||||
- SITE-DASH-01: [记录](changes/2026-09-15-SITE-DASH-01-guides.md) [记录](baselines/dash-docs-validation.json)
|
||||
- SITE-04: [记录](site-content-review.md) [记录](changes/2026-09-16-SITE-04-chapter-ambilight-guides.md) [记录](baselines/site04-chapter-ambilight-guides.json) [记录](changes/2026-09-16-SITE-04-dpip-asr-guides.md) [记录](baselines/site04-dpip-asr-guides.json) [记录](changes/2026-09-16-SITE-04-auto-multi-guides.md) [记录](baselines/site04-auto-multi-guides.json) [记录](changes/2026-09-16-SITE-04-ads-vast-guides.md) [记录](baselines/site04-ads-vast-guides.json) [记录](changes/2026-09-16-SITE-04-jassub-mask-cast-guides.md) [记录](baselines/site04-jassub-mask-cast-guides.json) [记录](changes/2026-09-16-SITE-04-tools-guides.md) [记录](baselines/site04-tools-guides.json) [记录](changes/2026-09-16-SITE-04-proxies-guides.md) [记录](baselines/site04-proxies-guides.json) [记录](changes/2026-09-16-SITE-04-existing-guides.md) [记录](baselines/site04-existing-guides.json) [记录](core-content-review.json) [记录](baselines/site04-core-services.json) [记录](changes/2026-09-16-SITE-04-core-services.md) [记录](baselines/site04-template-icons.json) [记录](changes/2026-09-16-SITE-04-template-icons.md) [记录](baselines/site04-components.json) [记录](changes/2026-09-16-SITE-04-components.md) [记录](baselines/site04-setting.json) [记录](changes/2026-09-16-SITE-04-setting.md) [记录](baselines/site04-plugin-registry.json) [记录](changes/2026-09-16-SITE-04-plugin-registry.md) [记录](baselines/site04-subtitle.json) [记录](changes/2026-09-16-SITE-04-subtitle.md) [记录](baselines/site04-utils.json) [记录](changes/2026-09-16-SITE-04-utils.md) [记录](baselines/site04-globals.json) [记录](changes/2026-09-16-SITE-04-globals.md) [记录](baselines/site04-events.json) [记录](changes/2026-09-16-SITE-04-events.md) [记录](baselines/site04-options.json) [记录](changes/2026-09-16-SITE-04-options.md) [记录](baselines/site04-css.json) [记录](changes/2026-09-16-SITE-04-css.md) [记录](baselines/site04-lifecycle.json) [记录](changes/2026-09-16-SITE-04-lifecycle.md) [记录](baselines/site04-playback.json) [记录](changes/2026-09-16-SITE-04-playback.md) [记录](baselines/site04-display.json) [记录](changes/2026-09-16-SITE-04-complete.md)
|
||||
- SITE-05: [记录](changes/2026-09-16-SITE-05-search.md) [记录](baselines/site05-search.json)
|
||||
- SITE-05: [记录](changes/2026-09-16-SITE-05-search.md) [记录](baselines/site05-search.json) [记录](changes/2026-09-16-SITE-05-links-editor.md) [记录](baselines/site05-links-editor.json)
|
||||
- SITE-07: [记录](site-inventory.md) [记录](baselines/site-provenance.json) [记录](changes/2026-09-14-SITE-07-vendor-notices.md) [记录](baselines/site-notices-checkpoint.json) [记录](baselines/site-codicons-provenance.json) [记录](baselines/site-codicons-validation.json) [记录](changes/2026-09-15-SITE-07-codicons.md) [记录](baselines/vconsole-notices-provenance.json) [记录](baselines/vconsole-notices-validation.json) [记录](changes/2026-09-15-SITE-07-vconsole-notices.md) [记录](console-modernization.md) [记录](baselines/site-console-inventory.json) [记录](baselines/site-console-validation.json) [记录](changes/2026-09-15-SITE-07-console-baseline.md) [记录](baselines/console-feed-provenance.json) [记录](changes/2026-09-15-SITE-07-console-feed-source.md) [记录](baselines/console-commonjs-provenance.json) [记录](changes/2026-09-15-SITE-07-console-commonjs.md) [记录](baselines/console-esm-provenance.json) [记录](changes/2026-09-15-SITE-07-console-esm.md) [记录](baselines/console-embedded-notices.json) [记录](baselines/console-notices-validation.json) [记录](changes/2026-09-15-SITE-07-console-notices.md) [记录](baselines/console-embedded-sources.json) [记录](baselines/console-embedded-validation.json) [记录](changes/2026-09-15-SITE-07-console-embedded-sources.md) [记录](baselines/console-derived-attribution.json) [记录](baselines/console-derived-validation.json) [记录](changes/2026-09-15-SITE-07-console-derived-attribution.md) [记录](baselines/console-stackoverflow-provenance.json) [记录](baselines/console-stackoverflow-validation.json) [记录](changes/2026-09-15-SITE-07-console-stackoverflow.md) [记录](baselines/console-shallowequal-validation.json) [记录](changes/2026-09-15-SITE-07-console-shallowequal.md) [记录](console-notice-review.md) [记录](baselines/console-notice-review-validation.json) [记录](changes/2026-09-15-SITE-07-console-notice-review.md) [记录](baselines/monaco-typescript-provenance.json) [记录](baselines/monaco-typescript-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-typescript.md) [记录](baselines/monaco-languages-provenance.json) [记录](baselines/monaco-languages-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-languages.md) [记录](baselines/monaco-language-notices.json) [记录](baselines/monaco-language-notices-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-language-notices.md) [记录](baselines/monaco-modes-provenance.json) [记录](baselines/monaco-modes-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-modes.md) [记录](baselines/monaco-basic-provenance.json) [记录](baselines/monaco-basic-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-basic.md) [记录](baselines/monaco-core-origins-provenance.json) [记录](baselines/monaco-core-origins-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-core-origins.md) [记录](baselines/monaco-core-build-provenance.json) [记录](baselines/monaco-core-build-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-core-build.md) [记录](baselines/monaco-contributions-provenance.json) [记录](baselines/monaco-contributions-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-contributions.md) [记录](baselines/monaco-css-build-provenance.json) [记录](baselines/monaco-css-build-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-css.md) [记录](baselines/monaco-node-path-provenance.json) [记录](baselines/monaco-node-path-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-node-path.md) [记录](changes/2026-09-15-SITE-07-monaco-dom.md) [记录](baselines/monaco-dom-origins-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-unicode.md) [记录](baselines/monaco-unicode-provenance.json) [记录](baselines/monaco-unicode-validation.json) [记录](changes/2026-09-15-SITE-07-font-notices.md) [记录](baselines/site-font-notices-provenance.json) [记录](baselines/site-font-notices-validation.json)
|
||||
- EX-01: [记录](changes/2026-09-14-EX-01-react-consumer.md) [记录](baselines/react-consumer-validation.json) [记录](scripts/react-consumer.mjs)
|
||||
- EX-02: [记录](changes/2026-09-14-EX-02-vue-consumer.md) [记录](baselines/vue-consumer-validation.json) [记录](scripts/vue-consumer.mjs)
|
||||
|
||||
@@ -1,5 +1,14 @@
|
||||
# 进度与证据
|
||||
|
||||
## SITE-05 本地链接、编辑器与远端缺口
|
||||
|
||||
新增check:site-links并接入CI:67生成页面/5766本地引用/942搜索结果全部有效。
|
||||
真实编辑器与文档三浏览器72项、构建11项、CI回归80项均通过,声明/工具链/类型检查
|
||||
通过,见[记录](changes/2026-09-16-SITE-05-links-editor.md)。外部链接经系统代理HEAD
|
||||
复测81个:42个200、39个404;404全部是新增指南尚未进入GitHub master的编辑源文件。
|
||||
不擅自推送/合并,SITE-05保持doing,225 done /22 doing /38 todo。后续远端源码可用
|
||||
时复验链接;SITE-06还保留字体许可门槛。共享候选输入需REL-02刷新,正式复盘仍等待用户。
|
||||
|
||||
## SITE-05 搜索交互修复
|
||||
|
||||
修复 Enter 默认表单提交造成的整页重载、有内容时 Escape 不关闭、查询变化后选择
|
||||
|
||||
+3
-1
@@ -4624,7 +4624,9 @@
|
||||
"acceptance": "文档构建、链接、嵌入路径与声明注入通过;真实完整 demo 保留 EX-03 独立门槛;核对 ENG-PM-01 登记的搜索 peer 范围和真实搜索行为",
|
||||
"evidence": [
|
||||
"changes/2026-09-16-SITE-05-search.md",
|
||||
"baselines/site05-search.json"
|
||||
"baselines/site05-search.json",
|
||||
"changes/2026-09-16-SITE-05-links-editor.md",
|
||||
"baselines/site05-links-editor.json"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
1. 切换到 .node-version 指定的 Node,安装 Yarn 1.22.22;例如 `npm install --global yarn@1.22.22`,然后确认 `node --version` 和 `yarn --version`。npm 仅可用于安装 Yarn 工具及消费者兼容检查,不用于维护本仓库依赖锁。
|
||||
2. 干净 checkout 执行 `yarn install --frozen-lockfile --non-interactive`,禁止 CI 自动更新锁或忽略安装脚本/engines。参见 [Yarn Classic install](https://classic.yarnpkg.com/en/docs/cli/install/)。
|
||||
3. 执行 `yarn check:toolchain --strict`,核对实际 Node/Yarn、20 个固定开发工具和 22 个 workspace 的声明及传递依赖锁条目。普通检查允许满足最低工具要求的 Node,同时打印标准版本。
|
||||
3. 执行 `yarn check:toolchain --strict`,核对实际 Node/Yarn、根固定开发工具和 22 个 workspace 的声明及传递依赖锁条目。工具数量以本次输出为准;普通检查允许满足最低工具要求的 Node,同时打印标准版本。
|
||||
4. 执行 `yarn test:playback`、`yarn test:dash-control`、`yarn build all` 和 `yarn workspace artplayer-vitepress build`。ENG-02 已拆分只读 lint 与 lint:fix;PR/主线入口和独立 Pages 流程见 ci-setup.md。
|
||||
|
||||
私有根包最低 Node 为 ^20.19.0 || >=22.12.0,与原本使用的 Vite 7 一致。标准工具链验证
|
||||
@@ -19,6 +19,11 @@ CORE-25 默认选项缺陷已修复并通过相同三 Node 与严格打包检查
|
||||
## 锁文件和依赖维护
|
||||
|
||||
- 根构建工具固定精确版本并放在 devDependencies;发布包的 dependencies/peer 范围保持原样。
|
||||
- SITE-05 将已有传递依赖 `htmlparser2@10.1.0` 显式声明为根 devDependency,供
|
||||
`yarn check:site-links` 解析生成 HTML 使用;不进入播放器包。原版本和完整性不变,
|
||||
根 yarn.lock 只合并新增的精确选择器。链接检查不执行 HTML 的脚本,不请求外部 URL。
|
||||
文档站 FlexSearch peer 已对齐 0.7.43,见[搜索验证](changes/2026-09-16-SITE-05-search.md)。
|
||||
Yarn workspace add 后须再从根目录安装并核对 resolutions,防止工作区子命令遗漏根覆盖。
|
||||
- PKG-JASSUB-09 新增根 devDependency `pngjs@7.0.0`,在 Node 中解码 Playwright 截图,
|
||||
用实际合成画面与转移画布 readback 对照;不进入发布包。仅新增其精确 Yarn 锁条目,
|
||||
并验证固定 Node/Yarn 的 frozen 安装及严格工具链检查。上游 API 见
|
||||
@@ -39,7 +44,7 @@ Monaco 浏览器资产匹配的精确 API 类型。只使用 type import,不
|
||||
或加入播放器产物;root yarn.lock 仅增加该版本的一个条目。新增
|
||||
`yarn test:site-editor` 验证编辑器状态/读取失败;浏览器检查仍使用原 assets/js/vs。
|
||||
|
||||
ENG-01 的 [npm 验证报告](baselines/toolchain-validation.json) 是切换前历史证据,不代表 Yarn 已验证。[Yarn 验证报告](baselines/yarn-validation.json) 记录最终干净冻结安装、20 项 Node 测试、21 库包 63 产物及文档站构建全部通过;63 产物 SHA-256 与 ENG-01 完全相同。保留的旧锁条目版本变化为零,9 个 workspace runtime 依赖解析与 npm 基线一致。搜索 peer 警告由 SITE-05 接续验证。
|
||||
ENG-01 的 [npm 验证报告](baselines/toolchain-validation.json) 是切换前历史证据,不代表 Yarn 已验证。[Yarn 验证报告](baselines/yarn-validation.json) 记录最终干净冻结安装、20 项 Node 测试、21 库包 63 产物及文档站构建全部通过;63 产物 SHA-256 与 ENG-01 完全相同。保留的旧锁条目版本变化为零,9 个 workspace runtime 依赖解析与 npm 基线一致。搜索 peer 后续已由 SITE-05 对齐版本并完成三引擎交互验证;未启用的托管提供方警告保留说明。
|
||||
|
||||
构建通过不代表运行时、类型、真实浏览器或 npm 发布验收已完成。Chrome 不可用时按 release-reviews.md 使用内置浏览器并注明实际环境。
|
||||
|
||||
|
||||
Reference in new issue
Block a user