Skip to content

图片缺口与放置审计(2026-04-25)

这页只记录 2026-04-25 当前仓库的真实状态,不再沿用“还缺很多图”的旧体感。

本轮最终基线

基于以下命令的最终输出:

  • npm run site-images:audit -- --json
  • npm run wiki-images:audit -- --json
  • npm run wiki-images:fetch -- --dry-run
  • npm run wiki-images:dedupe-audit
  • npm run wiki-images:orphan-audit
  • npm run public-images:usage-audit
  • npm run image-docs:history-audit
  • npm run image-audit:check-report
  • npm run images:health

当前仓库状态是:

  • 294 篇 markdown
  • 572 处图片引用
  • 用户可见页面本地坏链:0
  • 正文外链图片:0
  • 用户可见无图页:0
  • wiki-images:fetch -- --dry-run
    • Queue: 31
    • missing: 0
    • existing: 31
  • wiki-images:audit -- --json
    • upgradeableRefs: 0
    • lowResRefs: 0
    • missingRefs: 0
    • availableOriginalUpgrades: 0
    • unreferencedBetterFiles: 0
    • expectedLowResRefs: 18
  • wiki-images:dedupe-audit
    • duplicateGroupCount: 0
  • wiki-images:orphan-audit
    • orphanCount: 0
  • public-images:usage-audit
    • orphanCount: 0
    • totalPublicImageFiles: 362
  • image-docs:history-audit
    • issueCount: 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-sourced NPC 图
  • 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-sourced8 张未被任何页面采用的额外切图
  • docs/public/img 根目录下 6 张未被任何页面或配置引用的旧截图 / 杂项图

这一轮清理完成后,整站 docs/public/img 一度达到:

  • public-images:usage-audit -> orphanCount: 0
  • wiki-images:orphan-audit -> orphanCount: 0
  • wiki-images:dedupe-audit -> duplicateGroupCount: 0
  • image-audit:check-report -> issueCount: 0

这些数字只作为本轮清理历史记录保留。 现行 public 图片库是否仍有残留孤儿,以页面顶部受管基线块中的 public-images:usage-audit / wiki-images:orphan-audit 结果为准。

当前推荐验证入口

现在图片线已经不再需要靠人工串命令复核。 后续如果只是想确认“图片库有没有回退”,优先跑:

  • npm run images:health
  • npm 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:

  1. 当前站点不存在“很多文章缺外站原图”的 backlog。
  2. 当前图片放置整体合理;12 篇用户可见无图页里,大多是首页、速查/清单、系统说明和设计文档,属于文本优先页,不是漏图页。
  3. 前几轮已经补过图的 Adoulin / Nyzul / GoV / RoE / Campaign Ops / battle-currencies 这些页面没有回退。
  4. 真正该处理的是重复资产、legacy 副本、孤儿文件,以及新增内容不要重新制造重复 / 孤儿 / 旧 backlog 幻觉。

Powered by ff11sf.com