对话笔记直发:8.5 公众号推送SOP与封面撑高bug修复。分类:效率实录。
date: 2026-08-05 tags: [对话笔记]
M.d 8.5 公众号推送SOP与封面撑高bug修复
目标与背景
把一篇 Markdown 文章排版后推送到微信公众号草稿箱,并沉淀成可复用流水线。 本次核心任务有两段:
- 修复”封面大卡片被微信撑高成 3:2”的 bug(本地打开是正常 1:2)。
- 用子代理做对抗式审查,把整条链路打磨成可复用、安全的版本。
前置:用 gzh-design skill(moyu-green 主题)把 Markdown 排版成公众号合规 HTML。
平台约束(不变):只认内联 style + <span leaf=""> 包文本;禁 <style>/<script>/<div>/class/id/float/grid/@media 等。
关键结论
- 封面撑高的根因(第一性原理):微信公众号会把 HTML 标签之间的换行/空白渲染成约 28px 高的空行(继承根容器
line-height:1.75),层层叠加把卡片撑高。下方 4 张滑动卡因在white-space:nowrap内而免疫。 - 修复点:不让”生成”产物变丑,而是让”负责跟微信打交道的推送步骤”保证传入内容无换行——
push_gzh_draft.py上传前自动re.sub(r'>\s+<','><',html)+re.sub(r' {2,}',' ',html)。生成产物可保持可读,微信永远拿到干净版。不单独做”去空白脚本”(剃刀原则)。 - 对抗审查 13 项发现,核心已修:
- 严重①:封面图默认取正文首图,而本文首图是 AI 生成的”掀翻美国 AI 大佬”图,当信息流封面跑题+合规风险 → 已在 push 增加
COVER_URL第 4 参数解耦(图由用户后续给)。 - 严重②:
validate_gzh_html.py不查标签间空白,压实正则若被误删会无声复发 → 已在 validate 加>\s*\n\s*</>\s{2,}<的 WARNING。 - 中等③:push 硬编码 TITLE/DIGEST → 已改为参数化
push_gzh_draft.py <html> <标题> [摘要] [封面URL] [作者]。 - 中等④:cleanup 误传 media_id 会删光同名草稿 → 已加”误传校验拒绝” + 必须
--yes才真删(默认预览)。 - 中等⑤:2 份早期错标题废稿(
我实测了 DeepSeek V4 Flash…,缺”刚发布两天,“前缀)已精确删除。 - 中等⑥:SOP/记忆与现状不符 → 已更新。
- 轻微(暂留,可暂缓):缓存按文件名跨文章串图、img 正则只认 src 首个属性(已顺手修)、无 alt、box-shadow/linear-gradient 未警告(已加警告)、凭据明文、单行文件 git diff 失效。
- 严重①:封面图默认取正文首图,而本文首图是 AI 生成的”掀翻美国 AI 大佬”图,当信息流封面跑题+合规风险 → 已在 push 增加
执行记录
- 修改并固化 3 个脚本到
.agents/skills/gzh-design/scripts/:validate_gzh_html.py→ 新增标签间空白 WARNING +box-shadow/linear-gradientWARNING。push_gzh_draft.py→ 参数化标题/摘要/封面/作者;封面支持COVER_URL解耦;img 正则改为<img[^>]*\ssrc=...(避免漏图)。cleanup_dup_drafts.py→ 默认预览、需--yes才删;显式 media_id 不在匹配列表则拒绝。
- 产出文件:
000_Raw/00_plan/_产出/刚发布两天,我实测了 DeepSeek V4 Flash:这次是来掀桌子的!_排版_摸鱼绿(moyu-green).html(已压实,作者改为”小风”;占位符{{作者名}}已替换)。 - 推送验证(新签名):
python3 .agents/skills/gzh-design/scripts/push_gzh_draft.py "<html>" "刚发布两天…" "摘要" "" "小风"→ 生成草稿xLDq81K2O9Sk2x2EA_t7SdTV8MKgrug8nRUBgqOWL9i8SM_kjtI4SZLyI31cxmey,校验:标签间空白 0、span-leaf 215、占位符已替换、author=小风。 - 清理:
python3 .agents/skills/gzh-design/scripts/cleanup_dup_drafts.py --yes→ 删旧留新,箱里该标题现仅 1 份。 - 删除 2 份错标题废稿(指定 media_id 精确删除):
xLDq81K2O9Sk2x2EA_t7SQGS6XFmnlk_hawsNLSlo7uYLJCSsebthX7B3lkJXmIi、...t7SVr69AsZ8f51odYFSiFjphr9LLaM38NHEKhZaX0uDYI1(errcode 0)。 - 写 SOP:
/mnt/d/Program/feng/公众号推送SOP.md(6 步链路 + 平台约束 + 命令 + 坑 + 换主题复用)。 - 写记忆:
/root/.codebuddy/projects/mnt-d-Program-feng/memory/reference_gzh_push.md+MEMORY.md索引(流水线位置 + 微信 whitespace 关键坑)。 - 凭据(写死在脚本):
- 用到的 API:
cgi-bin/token、media/uploadimg(内联图临时链)、material/add_material(封面永久素材)、draft/add、draft/get、draft/batchget、draft/delete。
状态与待办
- ✅ 封面撑高 bug 已修(用户在草稿箱已确认正常)。
- ✅ 对抗审查 6 项核心修复已全部落地并实跑验证。
- ⏳ 待用户:提供一张专属封面图 URL,用第 4 参数重推,替换当前”掀翻美国 AI 大佬”的默认首图封面(合规/跑题风险)。
- ⏳ 可暂缓项:凭据移入
.env、缓存按文章隔离、补alt、保留.pretty.html副本以恢复 git diff。 - 复用方式(换主题也一样):生成 →
validate_gzh_html.py <html>→push_gzh_draft.py <html> <标题> [摘要] [封面URL] [作者]→cleanup_dup_drafts.py --yes。