3.2.38 自动头像补 4 套风格:avataaars / bottts 及其带底色版 #7

上一版只收录 14 套,把 avataaars、bottts 两个系列漏掉了。原因是 3.2.36
盘点时,这四套的 npm 包里 license 字段写的是「See LICENSE file」,被我
当成「措辞不明、先不收」。点进去看实际条款是
「Free for personal and commercial use」(设计者 Pablo Stanley,
来源 avataaars.com / bottts.com),而且不要求署名 —— 比收录的 CC BY
那十几套还宽松。方向判断反了,这是错误,不是许可限制。

改动:
- 新增 inc/avatar-styles/ 四份模板:avataaars、avataaars_neutral、
  bottts、bottts_neutral(合计 227 KB,风格总数 14 → 18)
- yang_avatar_styles() 注册四套中文名与说明,排在「首字母」之后
- avataaars 的 onPostCreate 三条规则逐条复刻:
  ① style 组为 circle 时清空背景;
  ② 背景恰好只剩 65c9ff 一项时清空(判「恰好只有一个」,不是「包含」);
  ③ 戴头巾且胡子概率非 100 时去掉胡子。
  为此 yang_avatar_post_create() 增加 $picked 形参(官方读
  components.style.name / components.top.name,不传拿不到),
  返回值由 2 项改为 3 项($on 会被改,必须带出来)。
- 后台风格说明由「都是 CC0 或 MIT 许可」改为「都可自由使用与商用,
  且不要求署名」—— 加了这四套后前者已不准确
- 文件头许可清单补上「作者自定义许可」一类

验证(先证明判据真能红,再谈通过):
- 逐字节 80/0:四套各 20 种种子(含中文、emoji、超长、空串)比对官方
  Node 库。第一版 avataaars 20 个全错,差异正是背景那块天蓝,补规则后对齐
- 逐字节反向 3/3:删分支、不清 65c9ff、返回值退 2 项,各红 20 项
- 规则白盒 9/0:circle / 恰好 65c9ff / 多色保留 / 含 65c9ff 不只一项保留 /
  头巾 10% 删胡子 / 头巾 100% 保留胡子 / 不戴头巾不受影响 / 别风格不受影响 /
  返回 3 项
- 规则反向 6/6:写坏任一分支,都恰好在预期那条上报错
- 原有 14 套回归 108/0(原 84 + 新 24)
- 18 套全量冒烟:每套合法 SVG、三种种子互异
- 严格错误级别 PHP 8.4.25 与 8.5.12(线上同版)各 47/0
- 几何+交互 29/0:18 卡片、18 单选、18 缩略图全部解码
- 源码守卫 55/0,反向 17/17
- 包内契约 34/0,反向 8/8
- 后台标签 88/0、CDN 56/0 与 77/0、3.2.28 13/0
- 93 个 php 文件 php -l 全通过

顺带修正两处错误的守卫(都是这次暴露出来的):
- _guard336_avatar.py 把 avataaars / bottts 错列进「CC BY 禁止收录」
  清单,改按实测许可证重写(CC BY 实为 13 套,不含这两个)
- _guard336_falsify.py 的 F2 锚点仍在匹配旧名「自动头像」,3.2.37
  改名后恒失效;版本锚点也停在上一个版本
This commit is contained in:
2026-10-25 19:41:49 +08:00
parent 5c7a9e2c1c
commit 16cc7d8328
7 changed files with 734 additions and 11 deletions
+1 -1
View File
@@ -1,7 +1,7 @@
/*
Theme Name: Kratos_Yang
Text Domain: kratos_Yang
Version: 3.2.37
Version: 3.2.38
Requires PHP: 7.0
Description: 这是一个Kratos主题的分支版本,用来增加一些定制化功能。
Tags: 博客, 双栏, 响应式, 自定义背景, 自定义颜色, 自定义图标, 自定义菜单, 特色图像, 收录优化, 邮件中心, 主题选项, 小工具, 文章置顶, 无障碍友好