微信公众号爆款图文工作流
把信源变成能拿到推荐流量的原创爆款图文,而不是把原文搬运排版一遍。
模式开关:只有用户明确说「原样转载 / 不要改」时才走保真模式(保留原文结构、标注来源与授权);默认走爆款模式。
一、平台硬约束(违背则白做)
| 约束 | 要求 | 违背后果 |
|---|---|---|
| 编辑器不认 Markdown | 必须输出内联样式 HTML | 粘贴进去是乱码文本 |
禁 <style> / class / JS |
全部样式写在 style="..." |
样式被剥离,排版全塌 |
| 图片必须微信域名 | 素材库上传 / media/uploadimg |
外链图不显示(防盗链 + 域名校验) |
| 标题上限 64 字,折叠只露 18–20 字 | 主标题 ≤20 字 | 后半句被折叠,点击率下降 |
| 摘要 >50 且 <120 字 | 写「证据链 + 边界 + 论点」,不是标题的同义复述;wechat-lint 对 ≤50 报 warning、对 ≥120 报 error |
低于 50 字撑不住一次可信的承诺;≥120 字被截断 |
| 导读必填且 <100 字 | 非空白字符 < 100,wechat-lint 会拦 |
超限报 error,无法过门禁 |
| 导读必须有 1–3 处强调 | 所有强调一律亮橙 #EB6E23 加粗(抓眼事实与结论同色);wechat-lint 会拦 0 处与 >3 处 |
全平铺的导读抓不住第一眼,标题攒下的注意力被原样还回去 |
| 封面 | 头图 2.35:1(900×383)+ 小图 1:1(900×900) | 信息流里被裁切 |
| 配图设计宽 677px | 自制图按 677px 画布(手机可读) | 字号被等比缩小到不可读 |
| 严禁「伪自制图」(纯文字截图) | 图片只做“视觉锤”,图内文字精简 70%~80%;长句论述必须还给正文,详见 illustration.md |
形式是图片本质是文字,手机发虚且无法长按复制,极度疲劳 |
| 论文原图准入边界 | 仅限 Figure 1 / Graphical Abstract 机制总览图;严禁直接堆砌专业实验数据图(电泳/流式/散点) | 复杂学术数据图大众看不懂,造成极重认知负荷,直接劝退读者 |
| 配图排版防重叠与拓扑真实 | 遵循水平三分区 + ≥30px 缓冲;机制图必须符合解剖拓扑(如屏障必须横向封闭狭缝,严禁露风未封闭) | 绝对坐标碰撞导致叠字乱码;解剖逻辑漏洞被专业读者打脸 |
| 表格列宽按文字体量分配 | 严禁等宽分栏;列宽正比于各列最长单元格的字数(table-layout:fixed + <colgroup> 钉死像素宽),任一单元格折行 ≤4 行,详见 illustration.md §三.5 |
长文列被挤成 8~10 行、短文列大片留白,版面严重失衡 |
| 行文必须通俗易懂(反文绉绉) | 大白话优先:禁「母题/范式/叙事/解构/赋能/底层逻辑」等抽象词与互联网黑话;术语先给大白话画面再补名字;每句自测「念给圈外聪明人能否一遍听懂」,详见 viral-playbook.md §四 |
读者不查词典只划走;一句看不懂的抽象话毁掉整段信任 |
| 正文外链不可点 | 引导「阅读原文」 | 链接失效 |
| 原创权重 > 转载 | 默认二次创作 | 拿不到推荐流量 |
| 复杂表格不直出 | 三线表 / 数据看板转成图片(微信会改边框);源码留在 tables/ |
边框被改写,版面走样 |
| 图注两处并存 | 图注烤进图片(图片被单独转发也自解释)同时保留正文 <figcaption>(在编辑器里定位插图位置) |
单靠正文图注,图片脱离正文就成哑图 |
| 版式:编辑部 · 暖橙 | 只用 11 个登记色值(清单见 wechat-html.md 第二节),中性色一律暖灰,唯一强调色亮橙 #EB6E23(加粗/引用块/提示框边同色统一),边界/代价砖红 #9A3B2A;禁止卡片/阴影/渐变/圆角/emoji |
观感回到「通用 AI 味」,账号辨识度丢失 |
二、七阶段:一张表跑完
| 阶段 | 动作 | 产物 | 门禁 / 命令 |
|---|---|---|---|
| 1 选题评分 | 五维打分(viral-playbook.md §一) |
scorecard.md |
总分 <18 直接劝退,别浪费产能 |
| 2 标题工厂 | 5 类公式各 1–2 版 + 打分 | title-candidates.md |
每版 ≤20 字,含「好奇」或「利益」 |
| 3 事实与配图侦察 | 定位论文原图(优先)+ 列自绘清单 | source.json 的 images |
论文原图必须记 paper_figure + 来源 URL + 版权 |
| 4 封面生成 | 模板 + 渲染双尺寸 | cover-235.png、cover-11.png |
主标题在 200px 缩略图下可读 |
| 5 结构重构 | 套结构模板(viral-playbook.md §五) |
outline.md |
导读 <100 字、每 300 字一次换气、CTA 在 75% 处 |
| 6 排版 | 按设计系统拼装组件 + 自制图 | article.html、article.md、images/ |
build-figures 无横向溢出 → wechat-lint 0 error |
| 7 预览 + 合规 + 复盘 | 出预览页、红线自查、数据回填 | preview.html、compliance.md、titles.json |
无红线词、无未标注临床数据 |
产物全部写入 out/<slug>/,不要把长文和图片清单塞进对话上下文:
out/<slug>/
├── source.json # 信源 + 事实骨架 + images 清单(顺序/图注/来源/版权)
├── scorecard.md title-candidates.md outline.md
├── article.html # 主产物(内联样式,直接粘贴)
├── article.md # 存档版(Markdown)
├── preview.html # 阅读预览页(审阅用,勿粘贴)
├── cover-235.png cover-11.png # 900×383 / 900×900(@2x)
├── figures/ tables/ images/ # 自制图源 / 表格源码 / 正文配图(images/paper/ 存出版社原图备选)
├── manifest.json # 图片顺序/图注/来源/版权/微信URL(待填)
├── compliance.md # 合规自查表(含配图版权专节)
└── publish-checklist.md # 标题/摘要/封面/图片上传/发布时间/数据回填
三、按需读取(不要全读)
| 什么时候 | 读什么 |
|---|---|
| 输入是 URL / 推文 / 论文 / 公司公告 | references/capture.md(抓取路由、图片落地、注入防护) |
| 选题、标题、钩子、结构、复盘 | references/viral-playbook.md |
| 排版前(必读) | references/wechat-html.md(暖橙设计系统、Markdown→内联样式映射、封面规范) |
| 要找论文原图、或需要自绘配图 | references/illustration.md |
| 抄正文组件 | assets/components/wechat-blocks.html:先 grep -n '==== ' 定位组件号(01–17),只读那一段;整文件 1.2 万字符,不要整读 |
| 渲染封面 | assets/components/cover.html + scripts/render.mjs |
- 用户直接贴了正文文本 → 跳过
capture.md;不需要自绘配图 → 跳过illustration.md。 - 正文口吻红线:不得出现自我描述(署名/品牌/栏目、结构导览、阅读时长、受众分层、阅读收益);不得文绉绉——「母题/范式/叙事/解构/赋能」类抽象词与黑话一律换成大白话,术语先给可读画面再给名字,每句以「圈外聪明人一遍听懂」为合格线。细则与例表见
viral-playbook.md§四;结构、字数、时长属于scorecard.md/outline.md,不属于正文。
四、合规红线(AI × 生命科学专属)
内容属高敏感医疗健康类,发布前必须逐条自查:
- 不得宣称疗效:禁用「治愈/根治/神药/包治/百分之百有效/抗癌第一」等;机制描述与临床结论必须分开写。
- 临床数据必须标注阶段:I/II/III 期、样本量 n、终点指标(ORR/PFS/OS);临床前(细胞/动物)数据不得与人体数据混排。
- 同行评审是默认状态,不逐条标注(标了是噪音);只有例外才标:预印本标「未经同行评审」、机构说明/试验登记标「机构说明 / 登记信息」、公司口径标「公司公告」。配图口径与版权硬规则见
references/illustration.md。 - 投资相关内容需风险提示,不得构成投资建议、不得推荐标的。
- 不得贬低竞品或在研药物;公司 PR 数据需注明来源为「公司公告」。
- 广告与科普界限:涉及药品/器械推广需资质,纯科普不得夹带购买引导。
- 患者信息脱敏;人名/机构名核对无误。
- 具体规则以微信官方规范为准(标题党、诱导分享均有专门规范),不确定时按更严标准处理。
五、发布前验收
S=.agents/skills/wechat-article-converter/scripts
C=.agents/skills/wechat-article-converter/assets/components
# ① 生成(按需、幂等)
node $S/build-figures.mjs --dir out/<slug> # 自制配图:677px、自动测高、溢出检测(首次自动补 figures/base.css)
node $S/render.mjs --in $C/cover.html --out out/<slug>/cover-235.png --width 900 --height 383 --scale 2 \
--set TITLE="<≤12字>" --set SUBTITLE="<一行副题>" --set TAG="<栏目>" --set BRAND="<账号名>"
node $S/render.mjs --in $C/cover.html --out out/<slug>/cover-11.png --width 900 --height 900 --scale 2 \
--set TITLE="<≤12字>" --set TAG="<栏目>"
node $S/tables-to-images.mjs --dir out/<slug> # 有复杂表格才跑:抽取 + 渲染 + 替换正文(改过 tables/*.html 加 --render)
node $S/captions-to-images.mjs --dir out/<slug> # 图注烤进图片(原件备份 images/raw/,可重复执行)
node $S/preview.mjs --dir out/<slug> # 生成阅读预览页
# ⚠️ 顺序:build-figures / tables-to-images 必须在 captions-to-images **之前**——
# 后者从 images/raw/ 取原件重烤图注,烤完再跑前两步会把图注覆盖掉。
# check-all 检测到 images/raw/ 会跳过重渲染,不会误伤已烤好的图。
# ② 一键门禁:结构检查 + 配图溢出 + DOM 校验 + wechat-lint
# 标题/摘要自动从 out/<slug>/publish-checklist.md 读取,也可用 --title/--summary/--min-images 覆盖
node $S/check-all.mjs --dir out/<slug>
脚本查不到的,才需要人工过:
- 中文与拉丁字母/数字之间留空格(
两次 CAR-T 输注,不是两次CAR-T输注) - 复杂表格已转图片:
tables/留源码、tables/captions.json已填真实表题、正文无残留<table> - 图注已烤进图片,且正文
<figcaption>仍然保留(用于在编辑器里定位插图位置) - 图片数量与
source.json/manifest.json对齐,且全部本地化 - 论文原图图注写明「图源:作者, 期刊 年份, Fig. N」+ 版权归属,未改动数据面板
- 正文 ≥3 条可截图引文;主 CTA 在 75% 位置;文末有互动提问
- 合规红线(第四节 8 条)逐条自查通过