通用视频号图文生产引擎(tuwen-base)
它是什么 / 不是什么
- 是:一个领域无关的「中文排版 → 截图 → 切图」流水线。卡片骨架、三脚本、布局自检、版式参数都通用。
- 不是:不带任何行业内容。品牌色、文案规矩、插画图元、选题库都在领域包里(见
references/domain-pack-example.md的财经示例)。 - 做某个行业时,复制
assets/template.html,改:root品牌色、填GROUPS、在FIG加本行业的插画即可。
何时使用
- 用户要批量做某一领域的视频号/小红书图文(养生、财经、知识科普、职场、育儿、法律常识……)
- 用户要新开系列、续做系列、改版式、重导出
- 用户给了一批选题关键词
核心做法
中文一律用 HTML/CSS 排版渲染,插画一律手绘 SVG。 不用 AI 生图中文字(会错字),不用 AI 生带位置/数据的图(位置会错、数字会错)。
工作流程
1. 定结构(先想清楚几张)
先判断内容类型,再决定张数(原则是「张数匹配内容」,详见 references/content-structure.md):
- 有步骤 / 可操作的方法 → 6 张:封面 → 总览 → 步骤1 → 步骤2 → 注意/风险 → 结尾
- 常识纠错 → 3-5 张,按内容定:封面 → 错在哪 → 怎么改 → 结尾
- 知识讲透 → 4 张
- 纯清单 / 合集 → N 张
字段 no 用贴合内容的标签(如「错在哪 / 怎么改 / 记 住 / 做一做」或「第 1 步 / 第 2 步」),不要无脑套「第 N 步」。
2. 复制模板,换肤、填文案与 SVG
从 assets/template.html 复制一份:
- 改
:root里的品牌色(顶部一块注释「品牌变量」)——只改这一块就能整体换肤,HTML 外壳和 SVG 插画都跟着变。 - 在
GROUPS加一组:seal / sealVert / tag / h1a / h1b / em / sub / foot / deco / endh1 / endh2 / ends1 / ends2 / endcta / endfoot / pages。 - 在
FIG加本行业的手绘 SVG(写法见references/svg-guide.md)。 pages里每页:no / title / text / keys(每条 ≤ 5 字,最多 3 条)/fig。- 同结构的新系列往
GROUPS里加组,不新建 HTML 文件——靠 URL 参数?g=xxx一套出多组。 - 写文案时直接守住字数上限,别等自检报错再改(见
references/layout-spec.md)。
3. 跑布局自检(必做,不可跳过)
python scripts/audit.py <html路径> <组key1> <组key2> ...
# 组 key 后可加 ":N" 指定页数,如 fund:4(默认按 6 页算窗口)
# 画布非 1440 高时加 --height N(与模板 --card-h 对应)
全组输出 AUDIT_OK :: 全部通过 才能进下一步。有 ISSUES:: 按 references/layout-spec.md 的「常见报错与修法」改。最高频错是关键词 6 字压图,写时直接按 5 字写。
自检兼容两种写法:标准类名(.p-title/.p-text/.keys/.fig/.cover-*/.end-*)或 data-audit="text"|"fig" 标记。行业模板自定义类名时给关键元素加上 data-audit,不会被漏检、不会静默通过。
4. 导出
写 config.json(含可选 height),然后:
python scripts/export.py config.json
每组张数 = pages 数组长度,各组可以不相等。脚本负责全页截图、按高度切图、按 前缀-页名.png 重命名。
5. 生成预览页
python scripts/make_preview.py config.json
每期填:图片清单、视频号标题、正文、话题标签,另写一段「发布提醒」(排期、转发逻辑、合规红线)。预览页主色可用 config 的 brand 字段微调。
6. 交付
用 present_files 把 预览.html 和几张代表性 PNG 给用户。
关键约束速查
| 项 | 值(默认,可改) |
|---|---|
| 画布 | 1080 × 1440(改 :root --card-w/h + config height 可换比例) |
| 内页标题 | ≤ 11 字,nowrap |
| 内页正文 | ≤ 3 行 ≈ 45 字 |
| 关键词 | 每条 ≤ 5 字,最多 3 条(数据/数字类领域可放宽,相应缩小 .fig) |
| 插画区 | 440 × 440,right:0 bottom:62 |
| 封面主标题 | 每行 ≤ 9 字 |
| 描边大字 em | ≤ 5 字 |
细节在 references/layout-spec.md。
领域包怎么写(重要)
本引擎不直接写行业内容。一个领域包 = 一份 :root 品牌覆盖 + 一份内容规矩(含合规红线)+ 一套 FIG 插画 + 一份选题库。财经示例见 references/domain-pack-example.md。通用合规红线模板见 references/compliance.md。
环境要求
- 本机装有 Chrome / Chromium(headless 截图用)。可用环境变量
CHROME_BIN指定路径;否则脚本按常见路径与 PATH 自动查找。 - Pillow:
export.py依赖,首次用请pip install Pillow。 - 中文字体:依赖系统字体(Windows 默认微软雅黑;非 Windows 机器请确认装有中文字体,否则排版会错位)。
参考文件
references/layout-spec.md—— 版式参数、自检规则、报错修法、跨平台说明references/content-structure.md—— 通用「张数匹配内容」原则、文案写法、CTA 选项references/svg-guide.md—— 四类通用 SVG(图表/图标/人物/流程,含 K 线示例)写法与色板references/compliance.md—— 各领域合规红线模板(财经/养生示例)references/domain-pack-example.md—— 财经领域包完整示例(可直接抄)assets/template.html—— 空白模板(品牌变量化 + 自检脚本 + 通用 SVG 辅助函数)examples/finance/—— 可直接跑通的财经 demo(render.html + config.json)