Appearance
图片缺口与放置审计(2026-04-25)
这页只记录 2026-04-25 当前仓库的真实状态,不再沿用“还缺很多图”的旧体感。
本轮最终基线
基于以下命令的最终输出:
npm run site-images:audit -- --jsonnpm run wiki-images:audit -- --jsonnpm run wiki-images:fetch -- --dry-runnpm run wiki-images:dedupe-auditnpm run wiki-images:orphan-auditnpm run public-images:usage-auditnpm run image-docs:history-auditnpm run image-audit:check-reportnpm run images:health
当前仓库状态是:
294篇 markdown572处图片引用- 用户可见页面本地坏链:
0 - 正文外链图片:
0 - 用户可见无图页:
0 wiki-images:fetch -- --dry-runQueue: 31missing: 0existing: 31
wiki-images:audit -- --jsonupgradeableRefs: 0lowResRefs: 0missingRefs: 0availableOriginalUpgrades: 0unreferencedBetterFiles: 0expectedLowResRefs: 18
wiki-images:dedupe-auditduplicateGroupCount: 0
wiki-images:orphan-auditorphanCount: 0
public-images:usage-auditorphanCount: 0totalPublicImageFiles: 362
image-docs:history-auditissueCount: 0
- 站内图片健康结论:
OK
这说明当前主问题已经不是“缺外站原图”,而是“旧判断没有和当前代码库同步”。
当前用户页图位状态
site-images:audit 当前结果已经收敛到:
userFacingDocsWithNoImagesCount: 0- 当前用户可见页面已经没有无图页。
- 这意味着此前那批矩阵 / 速查页也已经完成补图,后续不再适用“继续维持 6 页无图策略”的旧判断。
当前图位判断
1. 正文页面不存在“缺图导致层级错乱”的明显 backlog
截至本轮:
- 用户页外链图片为
0 - 本地坏链为
0 wiki-sourced正文低清升级项为0
这意味着前几轮已经补过的 Adoulin / Nyzul / GoV / RoE / Campaign Ops / battle-currencies 这些页面,不该再被回退成“继续抢救缺图”的对象。
2. 需要继续保留的小图,已经收敛成“预期小图”
wiki-images:audit 当前剩下的低尺寸对象都属于合理例外:
- 品牌 logo / favicon
- 职业小图标
- 道具 sprite
- 竖版 NPC 半身原图
这些图不是“素材太差”,而是它们本来就只承担目录识别、品牌提示、NPC 认脸这类局部职责。
近期重复素材清理
本轮先用 wiki-images:dedupe-audit 扫出 3 组重复二进制,并已完成清理。 现行是否仍有重复素材,以页面顶部受管基线块中的 wiki-images:dedupe-audit 结果为准。
Duplicate binary groups: 0
本轮清掉的重复组如下:
| 保留路径 | 清理路径 |
|---|---|
/img/wiki-sourced/originals/nomad-moogle.jpg | /img/wiki-sourced/nomad-moogle.jpg |
/img/wiki-sourced/originals/altaieu-map.jpg | /img/wiki-sourced/altaieu-map.jpg |
/img/wiki-sourced/originals/grounds-of-valor.jpg | /img/wiki-sourced/originals/grounds-tome-top.jpg |
这 3 个副本都不是当前正文使用路径,所以本轮直接收口。
近期已清理的旧小图副本
除了字节级重复文件之外,本轮还继续清掉了 4 个已经被更高清版本完全取代、且正文不再引用的 legacy 文件:
/img/wiki-sourced/auction-house.webp/img/wiki-sourced/field-manual.webp/img/wiki-sourced/originals/nomad-moogle.webp/img/wiki-sourced/skillchains-diagram.webp
它们对应的现行保留路径分别是:
/img/wiki-sourced/auction-house.jpg/img/wiki-sourced/field-manual.jpg/img/wiki-sourced/originals/nomad-moogle.jpg/img/wiki-sourced/skillchains-diagram.jpg
这一步的目标不是“再补图”,而是把已经退役的旧小图彻底退出仓库资产主线。
近期已清理的 legacy-to-originals 副本
在上面这批明显被高清图替代的小图之外,本轮又继续清掉了 33 个 legacy 文件。 它们的共同条件是:
- 当前正文不再引用 legacy 路径
originals/下已经存在现行 canonical 文件
这批收口覆盖了三类历史残留:
Ambuscade / Abdhaljs这类旧webp道具图Shami / Joachim / Kilusha / Sagheera / Rytaal / Zasshal这一批早期wiki-sourcedNPC 图Category: Zdei / Porter Moogle / Grounds of Valor / Gorpa-Masorpa / Wilhelm这类已经切到originals/的系统说明图
当前保留策略已经进一步收敛成:
- 现行正文需要的 canonical 路径继续保留
- 历史参考页可以记录旧路径,但不再要求仓库继续保存对应二进制副本
近期已清理的孤儿素材
本轮最后还收掉了 4 个既不被正文引用、也没有继续承担 canonical 职责的孤儿文件:
/img/wiki-sourced/assai-nybaem-wiki.jpg/img/wiki-sourced/homepoint.jpg/img/wiki-sourced/nomad-mog-bonanza-tl01.jpg/img/wiki-sourced/survival-guide.jpg
这一步完成后,孤儿文件主线曾收敛到 orphanCount: 0。 后续如果又出现新增残留或待删副本,以页面顶部受管基线块中的 wiki-images:orphan-audit 结果为准。
近期已清理的全站 public 图孤儿
在 wiki-sourced 收口完成之后,本轮又用 public-images:usage-audit 清掉了最后 14 张全站级孤儿图。 它们分成两类:
official-sourced下8张未被任何页面采用的额外切图docs/public/img根目录下6张未被任何页面或配置引用的旧截图 / 杂项图
这一轮清理完成后,整站 docs/public/img 一度达到:
public-images:usage-audit -> orphanCount: 0wiki-images:orphan-audit -> orphanCount: 0wiki-images:dedupe-audit -> duplicateGroupCount: 0image-audit:check-report -> issueCount: 0
这些数字只作为本轮清理历史记录保留。 现行 public 图片库是否仍有残留孤儿,以页面顶部受管基线块中的 public-images:usage-audit / wiki-images:orphan-audit 结果为准。
当前推荐验证入口
现在图片线已经不再需要靠人工串命令复核。 后续如果只是想确认“图片库有没有回退”,优先跑:
npm run images:healthnpm run assets:verify
这条命令会统一检查:
- 正文本地坏链
- 正文外链图片
- wiki 正文低清 / 缺失 / 可升级引用
- wiki 重复二进制
- wiki 孤儿文件
- 全站 public 图孤儿
- 历史图片/外站采集文档是否已明确降为历史快照,并回指现行基线
- 现行图片审计页的受管基线块是否已和真实仓库状态同步
其中 assets:verify 现在也会把 images:health 结果写进同一份验证报告,所以来源资产健康和图片库健康已经合并到了一个验收入口里。 同时,宿主机入口 ./scripts/assets-local.command verify-strict 现在也已经和普通 verify 对齐,会完整跑完 doctor -> auto -> smoke -> host-download-smoke -> verify-strict,不再只是孤立执行最后一步严格报告。
本轮新增约束
scripts/fetch-missing-wiki-images.mjs
本轮补了一条硬约束:
- 下载外站图片后,先对二进制做
sha256 - 与现有
docs/public/img全量图片做去重比对 - 如果内容已存在,则跳过新文件落库,不再制造重复素材
--apply-refs模式下,正文会直接回写到已存在的本地路径
这条规则就是为了满足一个底线:从网上采回来的图片,不能再和仓库里现有图片重复占位。
本轮结论
截至 2026-04-25:
- 当前站点不存在“很多文章缺外站原图”的 backlog。
- 当前图片放置整体合理;
12篇用户可见无图页里,大多是首页、速查/清单、系统说明和设计文档,属于文本优先页,不是漏图页。 - 前几轮已经补过图的
Adoulin / Nyzul / GoV / RoE / Campaign Ops / battle-currencies这些页面没有回退。 - 真正该处理的是重复资产、legacy 副本、孤儿文件,以及新增内容不要重新制造重复 / 孤儿 / 旧 backlog 幻觉。