docs(core): [SITE-04] document subtitle loading and resource ownership

This commit is contained in:
Harvey Zhao committed 2026-09-16 07:18:10 +08:00
1 parent de45f5b978
commit bd3f3c0689
93 files changed
+3864 -2370

No files matched your search

+346 -35
View File
@@ -3,13 +3,13 @@
"task": "SITE-04",
"inventory": {
"path": "refactor/baselines/site-inventory.json",
"sha256": "503c389f66788737851288e0b2879dd73dfc630f9ce4f0474b49a2ba6bcb32e1"
"sha256": "ada7e484d1d751be99fb56a145a6578eb1642a5e3ef9c3ab54aa5e451fd5b2bb"
},
"reviewedAt": "2026-09-15T23:09:40.297Z",
"reviewedAt": "2026-09-15T23:17:13.870Z",
"counts": {
"inventoryRecords": 963,
"reviewedRecords": 331,
"unreviewedRecords": 632
"reviewedRecords": 358,
"unreviewedRecords": 605
},
"note": "Explicit declaration-record semantic mapping, including overload/getter/setter rows and root/runtime aliases. Counts are not overall API or release completion. Recheck affected groups if their source/document hashes drift. Other declarations and inline members are not implicitly covered.",
"groups": [
@@ -118,20 +118,20 @@
"docs": [
{
"path": "packages/artplayer-vitepress/docs/advanced/built-in.md",
"sha256": "a80bec28ca80291bc9e2c6d043544a5476dbca38a3f0fa14356c3755418f2800",
"sha256": "7e3532221a87652457371babdcc816643984f4a7fd080a5aed07b1807cedb8e6",
"anchor": "events"
},
{
"path": "packages/artplayer-vitepress/docs/en/advanced/built-in.md",
"sha256": "d34b8ff8cbfce43aa727c35cf52d857952e33cc44eb619f5e5f748e09006bacc",
"sha256": "3fc59e64a6cda6f1a176dddee92a24cfb0d0b56982bf535aa048e46a1bea774a",
"anchor": "events"
}
],
"evidence": "baselines/site04-core-services.json",
"documentHashRevalidation": {
"sourceBefore": "a1488f11bb73f7b96a04fadbce072a24bf626e79",
"evidence": "baselines/site04-template-icons.json",
"reason": "Relevant service section is byte-identical after LF normalization; source hashes remain unchanged. Whole-guide hash changed for template/icon additions."
"sourceBefore": "de45f5b978a69aaae3b466325ac4dce35bd0dee2",
"evidence": "baselines/site04-subtitle.json",
"reason": "Whole-guide hash changed for subtitle section only. All content outside that section is byte-identical after LF normalization; source hashes remain unchanged."
}
},
{
@@ -217,20 +217,20 @@
"docs": [
{
"path": "packages/artplayer-vitepress/docs/advanced/built-in.md",
"sha256": "a80bec28ca80291bc9e2c6d043544a5476dbca38a3f0fa14356c3755418f2800",
"sha256": "7e3532221a87652457371babdcc816643984f4a7fd080a5aed07b1807cedb8e6",
"anchor": "storage"
},
{
"path": "packages/artplayer-vitepress/docs/en/advanced/built-in.md",
"sha256": "d34b8ff8cbfce43aa727c35cf52d857952e33cc44eb619f5e5f748e09006bacc",
"sha256": "3fc59e64a6cda6f1a176dddee92a24cfb0d0b56982bf535aa048e46a1bea774a",
"anchor": "storage"
}
],
"evidence": "baselines/site04-core-services.json",
"documentHashRevalidation": {
"sourceBefore": "a1488f11bb73f7b96a04fadbce072a24bf626e79",
"evidence": "baselines/site04-template-icons.json",
"reason": "Relevant service section is byte-identical after LF normalization; source hashes remain unchanged. Whole-guide hash changed for template/icon additions."
"sourceBefore": "de45f5b978a69aaae3b466325ac4dce35bd0dee2",
"evidence": "baselines/site04-subtitle.json",
"reason": "Whole-guide hash changed for subtitle section only. All content outside that section is byte-identical after LF normalization; source hashes remain unchanged."
}
},
{
@@ -619,20 +619,20 @@
"docs": [
{
"path": "packages/artplayer-vitepress/docs/advanced/built-in.md",
"sha256": "a80bec28ca80291bc9e2c6d043544a5476dbca38a3f0fa14356c3755418f2800",
"sha256": "7e3532221a87652457371babdcc816643984f4a7fd080a5aed07b1807cedb8e6",
"anchor": "i18n"
},
{
"path": "packages/artplayer-vitepress/docs/en/advanced/built-in.md",
"sha256": "d34b8ff8cbfce43aa727c35cf52d857952e33cc44eb619f5e5f748e09006bacc",
"sha256": "3fc59e64a6cda6f1a176dddee92a24cfb0d0b56982bf535aa048e46a1bea774a",
"anchor": "i18n"
}
],
"evidence": "baselines/site04-core-services.json",
"documentHashRevalidation": {
"sourceBefore": "a1488f11bb73f7b96a04fadbce072a24bf626e79",
"evidence": "baselines/site04-template-icons.json",
"reason": "Relevant service section is byte-identical after LF normalization; source hashes remain unchanged. Whole-guide hash changed for template/icon additions."
"sourceBefore": "de45f5b978a69aaae3b466325ac4dce35bd0dee2",
"evidence": "baselines/site04-subtitle.json",
"reason": "Whole-guide hash changed for subtitle section only. All content outside that section is byte-identical after LF normalization; source hashes remain unchanged."
}
},
{
@@ -719,20 +719,20 @@
"docs": [
{
"path": "packages/artplayer-vitepress/docs/advanced/built-in.md",
"sha256": "a80bec28ca80291bc9e2c6d043544a5476dbca38a3f0fa14356c3755418f2800",
"sha256": "7e3532221a87652457371babdcc816643984f4a7fd080a5aed07b1807cedb8e6",
"anchor": "hotkey"
},
{
"path": "packages/artplayer-vitepress/docs/en/advanced/built-in.md",
"sha256": "d34b8ff8cbfce43aa727c35cf52d857952e33cc44eb619f5e5f748e09006bacc",
"sha256": "3fc59e64a6cda6f1a176dddee92a24cfb0d0b56982bf535aa048e46a1bea774a",
"anchor": "hotkey"
}
],
"evidence": "baselines/site04-core-services.json",
"documentHashRevalidation": {
"sourceBefore": "a1488f11bb73f7b96a04fadbce072a24bf626e79",
"evidence": "baselines/site04-template-icons.json",
"reason": "Relevant service section is byte-identical after LF normalization; source hashes remain unchanged. Whole-guide hash changed for template/icon additions."
"sourceBefore": "de45f5b978a69aaae3b466325ac4dce35bd0dee2",
"evidence": "baselines/site04-subtitle.json",
"reason": "Whole-guide hash changed for subtitle section only. All content outside that section is byte-identical after LF normalization; source hashes remain unchanged."
}
},
{
@@ -811,20 +811,20 @@
"docs": [
{
"path": "packages/artplayer-vitepress/docs/advanced/built-in.md",
"sha256": "a80bec28ca80291bc9e2c6d043544a5476dbca38a3f0fa14356c3755418f2800",
"sha256": "7e3532221a87652457371babdcc816643984f4a7fd080a5aed07b1807cedb8e6",
"anchor": "notice"
},
{
"path": "packages/artplayer-vitepress/docs/en/advanced/built-in.md",
"sha256": "d34b8ff8cbfce43aa727c35cf52d857952e33cc44eb619f5e5f748e09006bacc",
"sha256": "3fc59e64a6cda6f1a176dddee92a24cfb0d0b56982bf535aa048e46a1bea774a",
"anchor": "notice"
}
],
"evidence": "baselines/site04-core-services.json",
"documentHashRevalidation": {
"sourceBefore": "a1488f11bb73f7b96a04fadbce072a24bf626e79",
"evidence": "baselines/site04-template-icons.json",
"reason": "Relevant service section is byte-identical after LF normalization; source hashes remain unchanged. Whole-guide hash changed for template/icon additions."
"sourceBefore": "de45f5b978a69aaae3b466325ac4dce35bd0dee2",
"evidence": "baselines/site04-subtitle.json",
"reason": "Whole-guide hash changed for subtitle section only. All content outside that section is byte-identical after LF normalization; source hashes remain unchanged."
}
},
{
@@ -1328,7 +1328,7 @@
"docs": [
{
"path": "packages/artplayer-vitepress/docs/advanced/built-in.md",
"sha256": "a80bec28ca80291bc9e2c6d043544a5476dbca38a3f0fa14356c3755418f2800",
"sha256": "7e3532221a87652457371babdcc816643984f4a7fd080a5aed07b1807cedb8e6",
"anchor": "template"
},
{
@@ -1338,7 +1338,7 @@
},
{
"path": "packages/artplayer-vitepress/docs/en/advanced/built-in.md",
"sha256": "d34b8ff8cbfce43aa727c35cf52d857952e33cc44eb619f5e5f748e09006bacc",
"sha256": "3fc59e64a6cda6f1a176dddee92a24cfb0d0b56982bf535aa048e46a1bea774a",
"anchor": "template"
},
{
@@ -1347,7 +1347,12 @@
"anchor": "html"
}
],
"evidence": "baselines/site04-template-icons.json"
"evidence": "baselines/site04-template-icons.json",
"documentHashRevalidation": {
"sourceBefore": "de45f5b978a69aaae3b466325ac4dce35bd0dee2",
"evidence": "baselines/site04-subtitle.json",
"reason": "Whole-guide hash changed for subtitle section only. All content outside that section is byte-identical after LF normalization; source hashes remain unchanged."
}
},
{
"id": "icons",
@@ -1595,16 +1600,21 @@
"docs": [
{
"path": "packages/artplayer-vitepress/docs/advanced/built-in.md",
"sha256": "a80bec28ca80291bc9e2c6d043544a5476dbca38a3f0fa14356c3755418f2800",
"sha256": "7e3532221a87652457371babdcc816643984f4a7fd080a5aed07b1807cedb8e6",
"anchor": "icons"
},
{
"path": "packages/artplayer-vitepress/docs/en/advanced/built-in.md",
"sha256": "d34b8ff8cbfce43aa727c35cf52d857952e33cc44eb619f5e5f748e09006bacc",
"sha256": "3fc59e64a6cda6f1a176dddee92a24cfb0d0b56982bf535aa048e46a1bea774a",
"anchor": "icons"
}
],
"evidence": "baselines/site04-template-icons.json"
"evidence": "baselines/site04-template-icons.json",
"documentHashRevalidation": {
"sourceBefore": "de45f5b978a69aaae3b466325ac4dce35bd0dee2",
"evidence": "baselines/site04-subtitle.json",
"reason": "Whole-guide hash changed for subtitle section only. All content outside that section is byte-identical after LF normalization; source hashes remain unchanged."
}
},
{
"id": "components",
@@ -3044,6 +3054,307 @@
}
],
"evidence": "baselines/site04-plugin-registry.json"
},
{
"id": "subtitle",
"status": "semantic-reviewed",
"conclusion": "Options, shallow switch merge and base-versus-attempt settings; conversion and callback receiver, fetch/track completion distinction, exact Promise outcomes and errors; track/cue identity, rendering/event order and escape source; style/show/update differences from generic components, low-level init/createTrack/destroyEvent boundaries, owned URL lifetime and cancellation. Root legacy types versus runtime manager; physical native fullscreen remains unverified.",
"records": [
{
"id": "packages/artplayer/public/artplayer.ts#Artplayer.subtitle@178",
"file": "packages/artplayer/public/artplayer.ts",
"declaration": "Artplayer",
"name": "subtitle",
"line": 178
},
{
"id": "packages/artplayer/public/runtime.ts#Artplayer.subtitle@90",
"file": "packages/artplayer/public/runtime.ts",
"declaration": "Artplayer",
"name": "subtitle",
"line": 90
},
{
"id": "packages/artplayer/public/runtime/subtitle.ts#SubtitleCue.text@6",
"file": "packages/artplayer/public/runtime/subtitle.ts",
"declaration": "SubtitleCue",
"name": "text",
"line": 6
},
{
"id": "packages/artplayer/public/runtime/subtitle.ts#SubtitleCue.originalStartTime@7",
"file": "packages/artplayer/public/runtime/subtitle.ts",
"declaration": "SubtitleCue",
"name": "originalStartTime",
"line": 7
},
{
"id": "packages/artplayer/public/runtime/subtitle.ts#SubtitleCue.originalEndTime@8",
"file": "packages/artplayer/public/runtime/subtitle.ts",
"declaration": "SubtitleCue",
"name": "originalEndTime",
"line": 8
},
{
"id": "packages/artplayer/public/runtime/subtitle.ts#SubtitleTrack.offset@11",
"file": "packages/artplayer/public/runtime/subtitle.ts",
"declaration": "SubtitleTrack",
"name": "offset",
"line": 11
},
{
"id": "packages/artplayer/public/runtime/subtitle.ts#Subtitle.name@14",
"file": "packages/artplayer/public/runtime/subtitle.ts",
"declaration": "Subtitle",
"name": "name",
"line": 14
},
{
"id": "packages/artplayer/public/runtime/subtitle.ts#Subtitle.option@15",
"file": "packages/artplayer/public/runtime/subtitle.ts",
"declaration": "Subtitle",
"name": "option",
"line": 15
},
{
"id": "packages/artplayer/public/runtime/subtitle.ts#Subtitle.destroyEvent@16",
"file": "packages/artplayer/public/runtime/subtitle.ts",
"declaration": "Subtitle",
"name": "destroyEvent",
"line": 16
},
{
"id": "packages/artplayer/public/runtime/subtitle.ts#Subtitle.url@17",
"file": "packages/artplayer/public/runtime/subtitle.ts",
"declaration": "Subtitle",
"name": "url",
"line": 17
},
{
"id": "packages/artplayer/public/runtime/subtitle.ts#Subtitle.textTrack@18",
"file": "packages/artplayer/public/runtime/subtitle.ts",
"declaration": "Subtitle",
"name": "textTrack",
"line": 18
},
{
"id": "packages/artplayer/public/runtime/subtitle.ts#Subtitle.activeCues@19",
"file": "packages/artplayer/public/runtime/subtitle.ts",
"declaration": "Subtitle",
"name": "activeCues",
"line": 19
},
{
"id": "packages/artplayer/public/runtime/subtitle.ts#Subtitle.cues@20",
"file": "packages/artplayer/public/runtime/subtitle.ts",
"declaration": "Subtitle",
"name": "cues",
"line": 20
},
{
"id": "packages/artplayer/public/runtime/subtitle.ts#Subtitle.show@21",
"file": "packages/artplayer/public/runtime/subtitle.ts",
"declaration": "Subtitle",
"name": "show",
"line": 21
},
{
"id": "packages/artplayer/public/runtime/subtitle.ts#Subtitle.toggle@22",
"file": "packages/artplayer/public/runtime/subtitle.ts",
"declaration": "Subtitle",
"name": "toggle",
"line": 22
},
{
"id": "packages/artplayer/public/runtime/subtitle.ts#Subtitle.style@23",
"file": "packages/artplayer/public/runtime/subtitle.ts",
"declaration": "Subtitle",
"name": "style",
"line": 23
},
{
"id": "packages/artplayer/public/runtime/subtitle.ts#Subtitle.update@27",
"file": "packages/artplayer/public/runtime/subtitle.ts",
"declaration": "Subtitle",
"name": "update",
"line": 27
},
{
"id": "packages/artplayer/public/runtime/subtitle.ts#Subtitle.switch@28",
"file": "packages/artplayer/public/runtime/subtitle.ts",
"declaration": "Subtitle",
"name": "switch",
"line": 28
},
{
"id": "packages/artplayer/public/runtime/subtitle.ts#Subtitle.init@29",
"file": "packages/artplayer/public/runtime/subtitle.ts",
"declaration": "Subtitle",
"name": "init",
"line": 29
},
{
"id": "packages/artplayer/public/runtime/subtitle.ts#Subtitle.createTrack@30",
"file": "packages/artplayer/public/runtime/subtitle.ts",
"declaration": "Subtitle",
"name": "createTrack",
"line": 30
},
{
"id": "packages/artplayer/public/subtitle.ts#Subtitle.url@5",
"file": "packages/artplayer/public/subtitle.ts",
"declaration": "Subtitle",
"name": "url",
"line": 5
},
{
"id": "packages/artplayer/public/subtitle.ts#Subtitle.name@10",
"file": "packages/artplayer/public/subtitle.ts",
"declaration": "Subtitle",
"name": "name",
"line": 10
},
{
"id": "packages/artplayer/public/subtitle.ts#Subtitle.type@15",
"file": "packages/artplayer/public/subtitle.ts",
"declaration": "Subtitle",
"name": "type",
"line": 15
},
{
"id": "packages/artplayer/public/subtitle.ts#Subtitle.style@20",
"file": "packages/artplayer/public/subtitle.ts",
"declaration": "Subtitle",
"name": "style",
"line": 20
},
{
"id": "packages/artplayer/public/subtitle.ts#Subtitle.encoding@25",
"file": "packages/artplayer/public/subtitle.ts",
"declaration": "Subtitle",
"name": "encoding",
"line": 25
},
{
"id": "packages/artplayer/public/subtitle.ts#Subtitle.escape@30",
"file": "packages/artplayer/public/subtitle.ts",
"declaration": "Subtitle",
"name": "escape",
"line": 30
},
{
"id": "packages/artplayer/public/subtitle.ts#Subtitle.onVttLoad@35",
"file": "packages/artplayer/public/subtitle.ts",
"declaration": "Subtitle",
"name": "onVttLoad",
"line": 35
}
],
"sources": [
{
"path": "packages/artplayer/src/subtitle/index.ts",
"sha256": "b4ead680dc82fa47c53d1ec7e5fb8bf94abbf55730d5d1130ad8d544cb42adc8"
},
{
"path": "packages/artplayer/src/subtitle/parse.ts",
"sha256": "7db540c5edb1d2312eed82757fd15a7ce6a28996ba20d0087e56730f21dede74"
},
{
"path": "packages/artplayer/src/subtitle/request.ts",
"sha256": "543c964571bd5ab984bc1adc9f64a8917dd134ed2892ad10b30ed9c859f34119"
},
{
"path": "packages/artplayer/src/subtitle/render.ts",
"sha256": "96493fc35680af635a8db225a8bf002208df79ed48b1d4ee6cc73587543add5c"
},
{
"path": "packages/artplayer/src/subtitle/state.ts",
"sha256": "9f79b982d66747170bc39bdaf99b65676310965f23da62a4dec15547c756a56b"
},
{
"path": "packages/artplayer/src/subtitle/track.ts",
"sha256": "707f4c43af4ebf4b87521f6f577168460e739274d0cec28b9efe5704d2540d18"
},
{
"path": "packages/artplayer/src/subtitle/types.ts",
"sha256": "c7fd0568c71611fe44f0a7d2735a246250c8a63daefd15c63091e37d38bf1edb"
},
{
"path": "packages/artplayer/src/subtitle/timing.ts",
"sha256": "f2c1dbb63697a51c200371127da4fb8ea6e90a5b4de888bb1c2d7eae4007a5f8"
},
{
"path": "packages/artplayer/src/player/subtitleOffsetMix.ts",
"sha256": "cf9834711842c8a31c3143ab3028f0cf9ba541fafe6f0a3076067daa9d4c750a"
},
{
"path": "packages/artplayer/src/utils/subtitle.ts",
"sha256": "f058851d11a418e321a8a498472b67fa535fec2c7b5d3df739b6b4f263d00337"
},
{
"path": "packages/artplayer/src/utils/file.ts",
"sha256": "ea71d7fc0e818d473bf5a596211ba9d571e4febdf1878014eadefa8d0a98d4cc"
},
{
"path": "packages/artplayer/src/utils/component.ts",
"sha256": "c3fa96467e8b315d974a42a19591aa4a4a7514853db796135b2acbcdcb160ea3"
},
{
"path": "packages/artplayer/src/dom/styles.ts",
"sha256": "734e0a4e04d666417a18ac09ed6271ee7630c399d52d7f510a1c19fd6e7b3493"
},
{
"path": "packages/artplayer/src/option/defaults.ts",
"sha256": "0bfdc329c48716ac5987c8979fee7e116f6894a70fefc908c99876dfbb4d9dc0"
},
{
"path": "packages/artplayer/src/scheme/index.ts",
"sha256": "dc4a3b5e08478cf72b46b0b59c023359ad5f79b891ea8a6a119ce24a5251821a"
},
{
"path": "packages/artplayer/src/lifecycle/instance.ts",
"sha256": "3168f7db4271bae7a242e80798546b755ac15443e15dd9ebb7675f5a259299d8"
},
{
"path": "packages/artplayer/public/artplayer.ts",
"sha256": "26a42ac66811e70f68a8ebe62cbf304eb1993451b3e658961be98e7106162527"
},
{
"path": "packages/artplayer/public/runtime.ts",
"sha256": "ec4b1d56993eb482a77eb0f94b701047549d009e6ba6433f27e7d464fef30c2b"
},
{
"path": "packages/artplayer/public/runtime/subtitle.ts",
"sha256": "13241c4f9a87517aa2cf7b3e0bb8cedaa12fa0b4d3f8934285797583b752557e"
},
{
"path": "packages/artplayer/public/subtitle.ts",
"sha256": "d25b470e47d6a9bd696d9c1ad8adb58e56a208f05695186d513bc8c43c2e8acf"
}
],
"docs": [
{
"path": "packages/artplayer-vitepress/docs/advanced/built-in.md",
"sha256": "7e3532221a87652457371babdcc816643984f4a7fd080a5aed07b1807cedb8e6",
"anchor": "subtitle-contract"
},
{
"path": "packages/artplayer-vitepress/docs/advanced/built-in.md",
"sha256": "7e3532221a87652457371babdcc816643984f4a7fd080a5aed07b1807cedb8e6",
"anchor": "subtitle-runtime"
},
{
"path": "packages/artplayer-vitepress/docs/en/advanced/built-in.md",
"sha256": "3fc59e64a6cda6f1a176dddee92a24cfb0d0b56982bf535aa048e46a1bea774a",
"anchor": "subtitle-contract"
},
{
"path": "packages/artplayer-vitepress/docs/en/advanced/built-in.md",
"sha256": "3fc59e64a6cda6f1a176dddee92a24cfb0d0b56982bf535aa048e46a1bea774a",
"anchor": "subtitle-runtime"
}
],
"evidence": "baselines/site04-subtitle.json"
}
]
}