公众号排版器(wx-typeset)
把已有内容排成能直接粘进公众号后台的样子。所有样式写成内联 style(公众号会过滤 <style> 标签和 class),不依赖任何第三方库,纯本地运行。
什么时候用
- 内容已经写好了,需要排版成公众号样式
- 需要换一套排版模板
- 需要「一键复制 → 粘贴到公众号后台」的完整 HTML
不负责:写作、改写、去 AI 味、推送草稿箱。这些交给对应的 skill(写作走 wechat-article-pro,推草稿走 mp-draft-push / wechat-publisher)。
作为技能包复用(跨任务 / 跨项目)
本技能包位于用户级目录 ~/.workbuddy/skills/wx-typeset/,所有任务、所有项目都能直接调用,无需重复安装。
- 自动触发:在其他任务的对话里,只要出现「排版」「公众号排版」「给这篇 md 排个版」「换个排版模板」「生成可直接粘贴公众号的 HTML」等意图,本技能会自动加载。
- 手动调用:直接说「用 wx-typeset 排一下」「调用 wx-typeset 技能」即可。
- 运行环境:核心脚本
scripts/typeset.py是纯 Python 标准库实现,零第三方依赖;换机器用系统 python3 也能跑(本机用托管的 python3 即可)。 - 输入输出:喂一个
.md文件(或 stdin 的 Markdown 文本)→ 产出「模板选择器」HTML 预览页 → 复制即粘进公众号后台。 - 自带资源:18 套模板全在
templates/,脚本按文件名自动识别,不依赖外部网络或字体文件。
内置模板
| key | 名称 | 适合 |
|---|---|---|
insight |
认知金句版(默认) | 赤陶点缀 + 金句大引文 + 极简留白,专为认知干货设计,观点一句砸进心里。老鬼认知类稿件的默认选择 |
narrative |
人物纪实版(创业故事推荐) | 暖褐纪实调 + 衬线首段下沉 + 金句引文,专为创业故事/人物叙事设计,像人物专访。讲老鬼自己的踩坑故事、客户案例时优先用这个 |
reader |
网页阅读版 | 纯黑白灰、窄栏大留白、衬线编号、细线分隔,标题左对齐刊物感。简单而不失高端,像精排的网页长文 |
magazine |
墨绿知性版 | 墨绿 + 暖金点缀,浅灰绿引用块,干净留白。深度长文、人物故事、商业分析、陪跑招商类 |
amber |
暖橙温润版 | 焦糖橙 + 暖金,米杏引用块,温暖亲和。老鬼随笔、情感婚姻、生活类,中老年受众看着舒服 |
minimal |
极简留白版 | 随笔、观点短评、情感类。黑白灰无装饰,行距 2.0,去 AI 味最彻底 |
serif |
刊物衬线版 | 衬线标题 + 首字下沉 + 下划线小标题 + 居中引文,像《人物》《三联》。人物故事、深度特稿 |
morandi |
莫兰迪温柔版 | 低饱和雾蓝绿 + 暖灰,圆角柔和。情感婚姻、生活指南、女性受众 |
ink |
水墨国风版 | 朱砂点缀 + 宣纸暖白 + 衬线,竖线朱砂小标题。老鬼随笔、情感、讲人性真相 |
mono |
黑金奢华版 | 白底纯黑字 + 金色细线,衬线编号。陪跑招商、商业分析、品牌调性文 |
tech |
科技蓝版 | 科技蓝 #2563eb 点缀 + 浅蓝引用块,干净有活力。知识干货、数字分析、AI/科技类 |
news |
报纸风版 | 衬线粗黑标题 + 上下双线栏目 + 全宽分隔,像传统报纸头版。资讯、评论、硬核观点 |
note |
手账便签版 | 暖黄纸感背景 + 焦糖棕点缀 + 大圆角,亲切像手账。生活指南、随笔、私房话 |
dark |
暗夜阅读版 | 深色背景 + 暖金点缀 + 浅字,夜间/高端场景专用(内容区为深色卡片) |
champagne |
香槟金版 | 奶油白底 + 香槟金细线,暖调轻奢。生活方式、美妆、高客单、女性向品牌文 |
midnight |
午夜墨蓝版 | 深墨蓝点缀 + 浅蓝灰引用块,冷调绅士气。商业洞察、财经、男性向、品牌调性 |
jade |
翡翠玉绿版 | 深翡翠绿 + 金线 + 衬线,东方轻奢。文化、茶酒、养生、国货、老鬼随笔进阶 |
slate |
高级冷灰版 | 冷灰底 + 极细线 + 左对齐大标题,建筑/设计感极简高级。设计、科技、观点 |
新增模板:在 templates/ 下放一个 JSON,字段照抄 magazine.json,key 即文件名。改完用 --list 确认能认到。
用法
# 注:PY 为本机「托管 python」路径,SK 为技能脚本路径;换机器请改成你自己的 python3 与技能目录
PY="C:/Users/Administrator/.workbuddy/binaries/python/versions/3.13.12/python.exe"
SK="C:/Users/Administrator/.workbuddy/skills/wx-typeset/scripts/typeset.py"
# 最常用:生成「模板选择器」——一页内含全部 18 套模板,点标签切换预览,一键复制
"$PY" "$SK" "文章.md" --all -o "输出目录"
# 排单篇(指定模板):认知干货默认 insight,创业故事用 narrative
"$PY" "$SK" "文章.md" -t insight --sub "老鬼 · 2026.09.02" --footer "(完)" -o "输出目录"
# 只要正文片段(不含预览页外壳)
"$PY" "$SK" "文章.md" --html-only -o "输出目录"
# 看有哪些模板
"$PY" "$SK" --list
推荐流程(贴合「给我 md → 点模板 → 预览 → 复制」):把文章丢给本 skill,直接生成 --all 选择器。打开预览页后,顶部一排模板标签随便点,选中哪套就点「一键复制当前模板正文」,再到公众号后台 Ctrl+V 即可。
参数:
| 参数 | 说明 |
|---|---|
--all |
生成模板选择器:一页内含全部模板,点标签切换预览,每套都能一键复制(最推荐) |
-t / --template |
模板 key,默认 insight(认知金句版)。认知干货用默认;创业故事/人物叙事用 -t narrative |
--title |
覆盖标题。不给则取正文第一个 # 一级标题 |
--sub |
副标题 / 署名日期,显示在标题下方 |
--footer |
文末文字 |
--dropcap |
开启首段首字下沉(默认关闭,更干净;serif/narrative 模板建议开启更有刊物感) |
-o |
输出目录,默认当前目录 |
--html-only |
只输出正文 HTML 片段 |
--list |
列出可用模板 |
支持从 stdin 读:cat 文章.md | "$PY" "$SK" --all -o out
支持的 Markdown
标题(#~######)、粗体 **x**、斜体 *x*、删除线 ~~x~~、行内代码 `x`、代码块 ```、无序列表、有序列表、引用 >、分割线 ---(渲染成居中的 •••)、图片、链接、GFM 表格。
# 一级标题会被提取为文章主标题;## 自动编号 01/02/03;### 带小圆点标记。首段默认不首字下沉(--dropcap 开启)。
执行后必做
- 用
present_files把生成的*_排版选择器.html(或单篇*_排版预览.html)打开给用户看 - 选择器页:让用户点顶部模板标签切换预览,选中后点「一键复制当前模板正文」,直接 Ctrl+V 粘进公众号后台编辑器
- 单篇预览页:点页面上的「一键复制正文」即可
- 微信富文本复制偶尔失效 → 备用方案是「复制 HTML 源码」粘到编辑器的 HTML 模式
已知限制
- 图片:公众号只认素材库里的图。本地路径会被保留但预览页顶部会黄条警告,需要先手动上传替换成 https 链接
- 表格:微信对表格支持一般,复杂表格建议转成图片
- 代码块:公众号无代码高亮,
<pre>只保留等宽字体和灰底 - 不要指望
flex/grid/position:absolute,微信编辑器会吃掉。模板里一律没用
字体版权合规(硬性约束)
排版只通过 font-family 给出系统字体回退链,不嵌入、不分发任何字体文件。实际渲染用的是读者设备已授权安装的系统字体,因此不存在字体版权风险。
规则:
1. 模板字体栈只允许出现系统字体 / web-safe 字体:PingFang SC、Hiragino Sans GB、Microsoft YaHei、SimSun、Songti SC、-apple-system、BlinkMacSystemFont、Georgia、Times New Roman、Menlo、Consolas,及通用族 sans-serif / serif / monospace
2. 严禁引用任何商业字库名(方正、汉仪、华康、造字工房、站酷、华文、苹方以外需确认的字体等),也严禁通过 @font-face 内嵌 .woff/.ttf/.otf 字体文件
3. 若未来需要"强制统一视觉字体",只能引入 SIL OFL / Apache-2.0 等开源授权字体(如 Noto Sans CJK / 思源黑体),且须在使用前确认授权范围;当前方案无此需求,不引入
4. 西文衬线(如 Georgia)仅影响英文/数字字形,不涉及中文字库授权
```