Skip to main content

lyzbcy-tier-posters

更新 lyzbcy.github.io 的五六食堂、江南大学外卖、方便面、饮料奶茶从夯到拉排名及一图流时使用。统一刷新四张海报,保留原始小数评分、微信表情包与上下引流,并检查文字溢出。适用于小龙虾/OpenClaw 等代理。

Source facts

Repository
lyzbcy/lyzbcy.github.io
Last source activity
September 30, 2026 at 03:46
Detected SKILL.md language
Chinese
Stars
1
Forks
0

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
lyzbcy-tier-posters
description
更新 lyzbcy.github.io 的五六食堂、江南大学外卖、方便面、饮料奶茶从夯到拉排名及一图流时使用。统一刷新四张海报,保留原始小数评分、微信表情包与上下引流,并检查文字溢出。适用于小龙虾/OpenClaw 等代理。
# 从夯到拉:四榜一图流 本文件是仓库内维护的一图流更新规范。先进入 `lyzbcy.github.io` 仓库根目录;不要使用旧备份目录的 `generate_posters.py`。 ## 最短执行流程 1. 先检查 `git status --short` 并取得最新主分支。已有未提交改动先保留;不要用过时本地副本覆盖远端。发布链路见 [push-pipeline](../../docs/howto/push-pipeline.md)。 2. 只按用户评价更新对应原始 JS、商品图片和文章隐藏文本。评分、档位、名称、评价不能自行改写。页面细则在 [博客 skill](../lyzbcy-blog-update/SKILL.md)。 3. 仓库根目录运行以下命令。已有环境可跳过安装。需要 **Python 3.10+、Node.js 18+**;Windows 的 `python3` 可替换为 `python`。 ```bash python3 -m venv .venv-posters # Linux/macOS: source .venv-posters/bin/activate # Windows PowerShell 改用:.\.venv-posters\Scripts\Activate.ps1 python -m pip install -r tools/requirements-posters.txt python tools/generate_posters.py --all python tools/generate_posters.py --all --check python -m unittest discover -s tests -p 'test_tier_posters.py' ``` 4. 打开四张 PNG,查看顶部、各档位、最长名称/简介、小数评分、全图平铺水印和底部。`--check` 成功只代表数据/文件/边界检查通过,不能替代看图。 5. 提交本次数据、图片、文章及 **4 张 PNG + 4 份 `.audit.json`**。只暂存本任务相关文件。获准发布时推送,等 Pages 构建成功后核对线上海报;不要把本地成功当成已上线。 ```bash git add assets/img/posters/poster-dine.png assets/img/posters/poster-dine.audit.json git add assets/img/posters/poster-takeout.png assets/img/posters/poster-takeout.audit.json git add assets/img/posters/poster-noodle.png assets/img/posters/poster-noodle.audit.json git add assets/img/posters/poster-drink.png assets/img/posters/poster-drink.audit.json # 另按实际修改逐个 add 数据 JS、商品图和文章,再 commit/push。 ``` ## 数据与评分规则 | 榜单 | 数据源(assets/lib-custom/) | 海报(assets/img/posters/) | 原始评分来源 | |---|---|---|---| | 五六食堂 | canteen-tier.js 的 stalls | poster-dine.png | tierLabel 明确写「数字 星」时取该值,否则取 rating | | 江大外卖 | takeout-tier.js 的 stalls | poster-takeout.png | tierLabel 的「店铺得分」或「评分」,没有数字才取 rating | | 方便面 | noodle-tier.js 的 noodles | poster-noodle.png | tierLabel 中的数字爱心/星数;rating 是旧网页档位索引,不能当实际评分 | | 所有饮料和奶茶 | drink-tier.js 的 drinks | poster-drink.png | tierLabel 中的明确星数;rating 同步存原始评分 | - **5.8 就是 5.8,5.5 就是 5.5,3.83 就是 3.83,6 就是 6。** 不使用 `parseInt`、整数星数或按档位推断评分。标签中的尾随零保留,例如 4.90。 - 方便面原评「史」按定性原评展示,不能自行换成 1 星或 2 星。未知评分格式会报错,查源数据或问作者,不要猜。 - 食堂名称纠正、已歇业/疑似歇业从 `canteen-tier-extras.js` 读取;外卖疑似歇业从 `takeout-tier-extras.js` 读取。更新源名单,不在生成器复制名单。 - 名称完整换行,卡片高度随名称增长;简介最多三行,按真实字宽截断并加「…」,完整评价仍在文章中。不要为了塞进卡片缩写或润色评价。 - 四榜档内按原始精确分数降序;同分时普通条目在前、守门员在后,其余保持源数组次序。网页共用 `assets/lib-custom/tier-ordering.js`,海报使用相同规则。 - 饮料奶茶榜的锚点:红牛 NPC 3 星、统一阿萨姆标准原味奶茶人上人 4 星、减糖的茉莉奶绿顶级 5 星。白魔爪 4.7 星、红魔爪 4.5 星已按作者新要求移到人上人;瑞幸高蛋白莓果酸奶饮由作者最新指定为顶级 5.2 星。 - 作者于 2026-09-30 明确规定:守门员是本档最低分,位于本档最后;有多个守门员时同分并一起排在末尾。低于本档守门员的条目需在源 JS 中下移,检查下一档门槛,保留原评分和评价,不抬分。没有守门员的档位不能自行发明门槛;质量线导致的低档仍保留。生成器发现低于守门员的条目会报错,不能只把角标移到末尾掩盖档位错误。 - 四榜源数据中明确标注 `anchor: true` 的守门员/评分锚点,在网页产品卡右上角和一图流海报卡右上角都显示「守门员」。更新锚点时同步检查两处;不能仅在评价文字里提到。 - 外卖海报只读取 `stalls` 顶层店铺。具体菜品只能放在对应店铺的 `dishes` 数组,供点击店铺后的详情卡使用;禁止把 `dishes[].name` 拼进海报名称或首页榜单。 ## 只有一套生成实现 - **唯一入口:`tools/generate_posters.py --all`**。`--kind dine|takeout|noodle|drink` 可用于单榜调试;交付前仍跑 `--all --check`。 - `tools/export_tier_data.cjs` 是入口调用的数据导出助手,不是另一套排版脚本。它支持单/双引号、拼接字符串、嵌套数组及带空格的路径。 - 历史命令 `tools/render_noodle_poster.py` 只转发到统一生成器,没有自己的排版。禁止恢复旧版,禁止再从成品 PNG 裁剪头尾。 - 字体(含许可)、Emoji 字体、七张精选微信表情包都在 `assets/img/posters/resources/`,无需访问个人电脑的表情包目录。 - 顶部与底部均包含完整测评入口。食堂/外卖回复「江大美食」,方便面回复「方便面」,饮料奶茶回复「饮料奶茶」,公众号统一为「捞鱼的博客」。 - 四张图均在所有内容绘制完成后叠加「捞鱼的博客」斜向平铺浅水印,覆盖卡片,使局部裁图也保留署名。页眉/页脚署名不能代替水印;不得在更新或改版时漏掉。audit 记录水印文字、透明度、角度与数量,`--check` 会检查这些字段。 - 用户明确要求改版时可修改这套实现并跑测试;普通数据更新只改源数据然后重绘。 ## 报错怎么处理 | 报错 | 处理 | |---|---| | 找不到 node / Python 包 | 检查 Node 18+;用当前 Python 安装 requirements-posters.txt | | 缺商品图 | 修复条目的 bgImage 和对应本地图片;不要用占位图掩盖 | | 缺字体/表情包 | 从仓库恢复 resources 对应素材;不要关闭检查或无表情降级 | | 无法唯一确定原始评分 | 看该条 tierLabel 和用户原评;不要退回取整或按档位赋分 | | 字体缺字 / 文字溢出 | 检查新增字符和布局;保留原文,修字体或换行后重跑测试与四榜 | | 输入已更新而海报未刷新 | 运行 `--all` 再运行 `--all --check`,一起提交 PNG 和 audit | | 图片与验收记录不匹配 | 重新生成;不要手改 audit 哈希来跳过检查 | ## 小龙虾如何发现本 skill 仓库的 `skills/` 是权威副本,`lyzbcy-blog-update` 会引导到本文件。若 OpenClaw 的 skills 目录在 `/home/openclaw-shared/skills/`,可由维护者把 `lyzbcy-tier-posters` 链接到本仓库同名目录;以实际安装路径为准,不假设所有机器都一样。没有安装链接时,直接让代理读取仓库中的本文件也能执行。后续仓库更新后先重新读取,别沿用旧上下文中的脚本命令。
View on GitHub