# Wechat Article Converter

> 把外部文章、论文/预印本或纯文本改造成微信公众号爆款图文：选题评分 → 标题工厂 → 封面生成 → 结构重构 → 内联样式排版 → 合规自检，产出可直接粘贴发布的 HTML、封面 PNG 与标题候选。默认排版为「编辑部 · 暖橙」设计系统。

- Skill: `zentnertrench-design/wechat-article-converter` (Agent Skill, multi-file: 5 files)
- Install (CLI): `npx skillmds@latest add zentnertrench-design/wechat-article-converter`
- Raw SKILL.md: https://api.skillmd.com/api/skills/zentnertrench-design/wechat-article-converter/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Web & Frontend
- Author: zentnertrench-design (https://skillmd.com/u/zentnertrench-design)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/zentnertrench-design/wechat-article-converter

---


# 微信公众号爆款图文工作流

把信源变成**能拿到推荐流量的原创爆款图文**，而不是把原文搬运排版一遍。

**模式开关**：只有用户明确说「原样转载 / 不要改」时才走保真模式（保留原文结构、标注来源与授权）；默认走爆款模式。

## 一、平台硬约束（违背则白做）

| 约束 | 要求 | 违背后果 |
|---|---|---|
| 编辑器不认 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 × 生命科学专属）

内容属高敏感医疗健康类，**发布前必须逐条自查**：

1. **不得宣称疗效**：禁用「治愈/根治/神药/包治/百分之百有效/抗癌第一」等；机制描述与临床结论必须分开写。
2. **临床数据必须标注阶段**：I/II/III 期、样本量 n、终点指标（ORR/PFS/OS）；**临床前（细胞/动物）数据不得与人体数据混排**。
3. **同行评审是默认状态，不逐条标注**（标了是噪音）；只有例外才标：预印本标「未经同行评审」、机构说明/试验登记标「机构说明 / 登记信息」、公司口径标「公司公告」。配图口径与版权硬规则见 `references/illustration.md`。
4. **投资相关内容**需风险提示，不得构成投资建议、不得推荐标的。
5. **不得贬低竞品或在研药物**；公司 PR 数据需注明来源为「公司公告」。
6. **广告与科普界限**：涉及药品/器械推广需资质，纯科普不得夹带购买引导。
7. 患者信息脱敏；人名/机构名核对无误。
8. 具体规则以微信官方规范为准（标题党、诱导分享均有专门规范），不确定时按更严标准处理。

## 五、发布前验收

```bash
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 条）逐条自查通过

