这两天折腾了一个小工具,解决了我一直觉得特别烦的一件事。
就是……每次看到一篇排版舒服的公众号文章,脑子里就想学,但真让我一个个参数对着还原,我是不干的,太累了。
所以我想的是——能不能把这个排版能力本身抽离出来,让 AI 去学、去复用?
具体说就是,你把一篇微信文章链接丢进去,它自动帮你把排版样式提取出来。下次写完文章,选中这个样式,一键推到公众号草稿箱。
听起来不复杂对吧?但做起来还真是有点门道。
👉点击预约直播,4月11日19:00直播间分享!用AI日常工作提效
先把需求说清楚
其实我找 AI 头脑风暴了几轮,核心需求就这几个:
微信文章链接丢进去,自动把排版样式提取出来 提取完不是黑盒,我要先预览,看到这套样式长什么样,确认满意了再保存 把自己写的 Markdown 丢进去,选中保存的样式,重新排版 排版有不满意的地方,能局部调——标题、正文、引用、代码块,各自改 最后直接推送到公众号草稿箱,不用再手动复制粘贴
流程其实就是三步:
样式采集 → 预览确认入库 → 文章排版 + 局部调整 → 推送草稿箱


技术方案怎么定
原则只有一个:本地跑,数据不上云。
最后选了这套:
Electron 做桌面应用,Node.js + Vue3 SQLite,但用的是 sql.js(纯 JS 版本,不需要装数据库软件,装上就能跑) Puppeteer 渲染微信页面,提取 DOM 的计算样式 marked 解析 Markdown,前端直接渲染预览
选 Electron 没怎么纠结——它能跑 Puppeteer,能做 UI,还能打包成安装包,刚好够用。


样式提取这块是最麻烦的
微信文章的 HTML 结构……怎么说呢,非常野。样式内联、class 名混淆、有时候直接写行内 style,正则匹配基本没戏。
我最后用的办法是:Puppeteer 把页面完整渲染出来,然后逐个节点读 getComputedStyle,拿到真实的计算后样式。
提取的维度大概有十来个:字体、字号、字重、颜色、背景色、行高、上下间距、内边距、边框样式、斜体……
提取出来长这样:
{
"h1": { "fontSize": 24, "fontWeight": 700, "color": "#1a1a1a", "marginTop": 24, "marginBottom": 16 },
"p": { "fontSize": 16, "lineHeight": 1.8, "color": "#333", "marginBottom": 12 },
"blockquote": { "borderLeft": "4px solid #ddd", "paddingLeft": 16, "fontStyle": "italic" }
}
这里有个细节我说一下:提取完不是直接入库的,而是先让你预览。
你想,提取结果不一定完美——颜色可能没读到,间距可能不对——如果直接存进去,下次用的时候才发现不对劲,那就麻烦了。预览一下,不满意就重新提取,这个环节我觉得是整个工具最值的部分。
排版引擎怎么做
排版反而简单了。Markdown 解析成 HTML,然后根据保存的样式模板动态生成 CSS,所有样式直接内联到标签上(这样复制到微信后台才有效)。
局部调整怎么做?
预设了几个组件标签:h1、h2、h3、p、blockquote、code、ul、li。选中哪个,下方浮出一个编辑面板,可以直接改字号、颜色、间距,改完实时预览。不需要懂 CSS,所见即所得。
推送到草稿箱
这里需要微信公众号的授权。我是调用微信的 client_credential 授权流程,获取 access_token 之后,调用草稿箱 API 直接推。
有一个小插曲:access_token 要存在本地。我一开始随便明文存的,后来想想还是加了一层 AES 加密。另外 token 有效期只有 2 小时,工具会自动处理续期。
完整流程跑通是什么感觉
看到一篇喜欢的微信文章 → 复制链接 → 粘贴进去 → 点"提取样式" → 预览确认 → 保存到本地样式库 写完文章(Markdown 格式)→ 粘贴进去 → 选择刚才保存的样式 → 实时预览 → 局部微调 选一个授权过的公众号 → 点"推送到草稿箱" → 去看后台发文章
说实话,从有这个念头到跑通核心流程,大半天就搞定了。主要是 Puppeteer 提取那块调试比较费时间——微信页面的 DOM 结构比想象中更乱,selector 写了删、删了写。
核心功能现在都能跑了,剩下的慢慢迭代:支持更多样式组件、批量处理、图片上传……这些不是不能用,是可以以后再加的。



其实我想说的是另一件事
搭这个工具的过程里,我一直在想一个问题:
我们日常工作中,有多少时间是真正花在"创造价值"上的?又有多少时间,其实花在了那些重复的、机械的、完全可以自动化的操作上?
排版这件事,本质上就是在消耗我的时间和注意力。但它又不是什么有技术含量的事——我只是懒得一个一个参数对着设置而已。
这个问题其实在各行各业都存在。设计师花大量时间在做重复的版式调整,运营每天在机械地复制粘贴发内容,数据分析师在手动整理格式不对的数据……
AI 时代的真正机会,可能不是替代谁,而是把这些"消耗感"强的事情自动化掉,让你把精力真正放到创造性的事情上。
我这半年一直在探索这个方向,从提示词工程、到 agent、再到工作流自动化,每一步都在试图把 AI 真正落地到日常工作中去,而不只是玩票性质的对对话。
下期直播内容征集中
如果你也有那种"做起来很烦,但好像也没什么技术含量"的事情——
不管是工作流自动化、数据处理、内容生产还是别的什么——
评论区留下你的困扰,下期直播我们就用 AI 把它解决掉。
最好的学习方式不是看别人演示,是解决真实的问题。你的困扰,可能也是很多人的困扰。
期待在直播间看到你。👋
夜雨聆风