laoyang
|
9ca33a0328
|
docs(readme): 修正校验脚本调用方式,标注跨机器产物不可复现 (#2)
- 三个代码块补 `cd ../_tooling`:脚本不在仓库里,按 README 原来的写法
(在仓库根目录直接 `node _sp_logo_export.js`)会 MODULE_NOT_FOUND
- 标注 docs/logo 的 PNG 与 docs 截图跨机器不可复现:Windows 重跑与已提交
版本逐字节相同(10/10 一致),WSL 重跑则 10/10 全变、阴影版最大通道差 255,
判据两边都是 95/95。先写清楚,免得下次当成脚本坏了去"修"
- 顺带记录 _sp_logo_export.js 改为按 __dirname 定位仓库(支持 SP_REPO 覆盖),
不再写死 D:/ 或 /home/ 绝对路径
|
2026-10-29 14:59:52 +08:00 |
|
laoyang
|
e09943fefb
|
docs(readme): 补 docs/logo 说明与 logo 重新导出步骤 (#2)
- 目录树补 docs/logo/ 一行,注明「只进仓库、不部署到站点」,
避免后续有人把线上 /docs/logo/logo-1024.png 的 404 误判成故障
(_sp_deploy.sh 只覆盖 index.html)
- 新增 logo 重新导出命令:_sp_logo_export.js / _sp_logo_verify.py /
_sp_logo_verify_falsify.py,解释器统一写 python3(WSL 无 python 别名)
- 尺寸档位按实际产物写 64/128/256/512/1024,五档 × 带阴影/无阴影
|
2026-10-29 13:24:47 +08:00 |
|
laoyang
|
33166407ea
|
feat(assets): 新增品牌 logo 多尺寸 PNG(5 档 × 带阴影/无阴影)(#2)
从站点 .logo 导出可直接用于 favicon / 应用图标 / 分享卡的素材。
- 尺寸 1024/512/256/128/64,全部 RGBA 透明底
- 两版本:带阴影(贴浅色背景)、-flat(贴彩色/深色背景)
- 以 alpha 通道 bbox 自动识别主体边界再裁切,主体占画布
85%(带阴影)/ 94%(flat),旧版留白 41% 已消除
导出脚本在仓库外 _tooling/_sp_logo_export.js,配套 95 项像素判据
与 6 条反证,不入库。
|
2026-10-28 23:39:46 +08:00 |
|
laoyang
|
03eca9dc9c
|
docs: README 加入线上地址与界面章节,截图按新布局重拍,补 .gitignore (#1)
- README 顶部加线上地址 https://password.yangyq.net/
- 新增「界面」章节:左设置/右操作的双栏逻辑、两按钮实测 241×42 宽高差 0px
- 截图全部重拍(旧图还是改动前的布局):dark/light 2400×1640、mobile 780×2490
- 新增 .gitignore,忽略 node_modules(本地跑判据的落点,43MB,之前没被忽略)
验证(不只看文字):
- 截图像素级检查:深浅背景色正确、颜色多样性足够,排除白屏
- _sp_shot_verify.js 26 条:断言被截图的页面状态正确(主题/左右栏/按钮尺寸/无历史模块)
- _sp_readme_check.js 10 条:README 事实性断言与产品逐条对账
- _sp_readme_render.js 9 条:最小 GFM 渲染后三张图 naturalWidth 均 > 0
|
2026-10-28 15:25:47 +08:00 |
|
laoyang
|
6b4ee89d19
|
refactor: 设置左移、主操作按钮等大异色、移除最近生成 (#1)
三处按需求调整:
1. 设置区移到左边
左 = 设置,右 = 输出。不调设置的人视线直接落到右侧密码与「复制密码」。
DOM 顺序也改成设置在前,窄屏单列时天然是设置在上、输出在下。
栅格比例同步反过来(设置 .92fr / 输出 1.08fr)。
2. 「复制密码」与「换一个」等大、不同色
.out-actions 从 flex 改成 grid repeat(2, 1fr),两个按钮严格等宽;
主按钮保留渐变,次按钮改为实心填充(新增 --surface-3,比 --surface-2 更实,
避免深色下与卡片同色而看着像没填充)。
3. 移除「最近生成」模块
删面板、清空按钮,以及 readHistory / pushHistory / renderHistory / ago
与 sp.history.v1 的全部读写。候选面板改为整宽单栏。
顺带清掉了共用工具 listItem 上的历史调用点。
验证(六套,全绿):
功能 jsdom 78 / 0
视觉几何对比度 114 / 0
真实剪贴板端到端 19 / 0
file:// 直开 15 / 0
功能反向注入 22 / 22 命中
视觉反向注入 6 / 6 命中
反向注入拆成两套:_sp_falsify.js 只喂 jsdom(不做布局),
把「按钮等大」「两栏左右」这类几何 bug 注进去影响不到被测判据,
会表现成"注入后仍全绿"、被误判成判据没牙齿(靶子选错)。
几何/视觉类归 _sp_visual_falsify.js。
删历史后专补两条"确实没了"的判据:DOM 节点不存在 +
localStorage 不再写入 sp.history.v1 —— 后者能抓到"面板删了但 JS 还在偷写"。
|
2026-10-28 13:57:29 +08:00 |
|
laoyang
|
a48f414bbb
|
chore: 触发 Gitea 仓库状态刷新 (#1)
|
2026-10-28 11:56:14 +08:00 |
|
laoyang
|
853531c07c
|
feat: 密码生成器 simple_password 初版 (#1)
单文件 index.html,纯 HTML + CSS + JS,零外部依赖,双击即用。
功能:
- 长度 4~64 可调;选「每类至少一位」时下限自动收紧到所选类型数
- 小写 / 大写 / 数字 / 符号四类可选,全不选会兜回小写而非生成空密码
- 生成即复制;剪贴板 API 不可用时降级到 execCommand
- 排除易混淆字符(0 O o 1 l I)与自定义排除
- 真实熵值(长度 × log2(字符池))与五档强度评价
- 批量生成 5 个候选、最近 6 条历史(仅本机 localStorage)
- 深浅色跟随系统并可手动切换,首帧前定主题避免闪烁
- 快捷键:空格换一个、C 复制
实现要点:
- 随机数走 crypto.getRandomValues + 拒绝采样,消除取模偏差
- 「每类至少一位」= 各类先取一位 + 剩余全池随机 + 整体洗牌,
避免固定位置带来的可预测性
验证:功能判据 80 条、浏览器几何/对比度/多视口 105 条、
真实剪贴板端到端 18 条全绿;24 条反向注入全部命中。
|
2026-10-28 11:52:37 +08:00 |
|