折腾一上午,我用浏览器插件把公众号排版治了:3秒搞定原来1小时的活

💡 作者按:一个刚毕业的打工牛马,最近写公众号被排版折磨到忍无可忍,索性自己动手写了个浏览器插件。今天把它开源放出来,免费拿。先讲我踩过的坑,再讲它能干啥,最后讲怎么用——3500 字读完,你也能像我一样,从此告别公众号排版地狱。


一、写文章 10 分钟,调排版 2 小时

写公众号的同行,应该都被同一个坑埋过。

你在 Notion / VSCode / 飞书文档里把文章打磨得漂漂亮亮,标题层级清楚、表格整齐、代码块带高亮、引用块灰底加粗——一切都好。然后你打开公众号编辑器,”啪”地粘贴进去。

下一秒,你的心情大概是这样的:

  • 标题字号没了,全变成正文
  • 表格的边框没了,斑马色没了,变成一堆裸数据
  • 代码块的灰底没了,变成普通段落
  • 图片裂了,因为原网站用的是懒加载(data-src),公众号编辑器不认
  • 外链全在,但发文时会被审核拦下,理由是”含外部链接”
  • 几十个 <div> 嵌套,公众号编辑器把它们当成”未知元素”,渲染得歪七扭八

你写正文用了 10 分钟,调排版要花 2 小时。

我干了这个活才发现,第一次被一个所见即所得编辑器折磨成这样。一开始我以为是我的问题,后来在群里聊起来,发现做公众号的同行——不管你是写新闻、写财经、写情感、写技术——每个人都在重复手工劳动,每个人都恨这玩意儿恨得牙痒。

更气人的是网上的现成工具:

  • 在线工具一半要会员,免费版限字数
  • 把内容传到别人服务器,写敏感行业的天然不放心
  • 浏览器扩展商店里那几个,要么不维护了,要么只能转 Markdown,转不了富文本网页
  • 公众号官方的「秀米」「壹伴」,功能堆得花里胡哨,但核心痛点反而没解决

折腾了两周,我决定不忍了,自己写一个。


二、动手:看我两把刷子能干点啥实在的

最早的版本是个 Python 命令行脚本。

逻辑很简单:读剪贴板里的 HTML → 跑一套清洗流水线 → 写回剪贴板。一行命令搞定,理论上很丝滑。

实际用了几天,我自己都嫌麻烦:

  • 写一篇文章要切换 7、8 次窗口
  • 每次都要打开 PowerShell,敲 python wechat_compat.py --clip
  • Windows 上的 Python 是精简版,时不时跳出来一句 ModuleNotFoundError: No module named 'tempfile',让你想骂街
  • 团队里的非技术同事根本没法用——你让一个文案小姐姐天天开命令行?她当场辞职给你看

那天我在 PowerShell 前坐着,盯着报错看了一分钟,决定重新做一遍——做成浏览器插件。

理由很直接:

  1. 零门槛:装好就用,不用懂代码
  2. 零依赖:插件就 20KB,没有任何外部库,断网也能跑
  3. 零等待:右键一点 3 秒搞定,比开命令行快十倍
  4. 零隐私风险:所有转换都在你浏览器本地完成,一个字节都不往外传

一上午,把 Python 版的清洗流水线 1:1 移植成纯 JavaScript,写了 550 多行核心逻辑、4 个文件、2 个图标,打包成一个 20KB 的扩展。装到 Edge 上一测——稳了


三、它到底能干啥?3 秒做完这 13 件事

打开浏览器插件的核心代码 converter.js,你会看到一条完整的转换流水线。我把它翻译成人话,就是它能自动帮你做这 13 件事:

痛点插件做了什么
标题字号丢失h1~h6 自动补默认字号样式
图片显示裂了data-src 懒加载图片自动转回 src
外链触发审查外链 href 剥离,文字保留
锚点链接报错<a href="#xxx"> 自动转 <span>
div 嵌套渲染歪所有 <div> 自动转成公众号识别的 <section>
标题被当普通段落h1~h6 同样转 <section>,保留视觉权重
CSS Grid 完全失效display:grid + repeat(n,1fr) 自动转 display:flex
Flex 子项错位子项自动补 flex:1 1 calc(50% - gap) + min-width:230px
表格边框斑马纹丢了表头自动转 tbody.firstRow,公众号识别
内嵌样式失效所有 CSS 自动内联到行内 style 属性
容器尺寸错乱section 自动补 box-sizing:border-box
危险标签触发拦截script 类标签、HTML 注释全部剥离
字符冗余报警多余分号合并、空属性删除、字体单引号转义

这套规则不是我拍脑袋定的,是过去半年我真实踩过的 13 个坑,一个一个填出来的。

举个具体例子。你在 Notion 里写了一个 3 列的卡片布局,用的是 CSS Grid——公众号编辑器完全不认 Grid,粘贴过去 3 张卡片会叠在一起,像三明治。

插件干了什么?

  • 把 display: grid; grid-template-columns: repeat(3, 1fr) 自动重写成 display: flex; flex-wrap: wrap
  • 每个子卡片自动补上 flex: 1 1 calc(33.33% - gap),再加一个 min-width: 230px 兜底
  • 移动端阅读时,卡片宽度不够 230px 就自动换行——响应式照样保留

这是过去我手工调整需要 15 分钟的事,插件 0.3 秒搞定。


四、两种用法:右键复制 + 工具栏一键

我做了两种入口,应对两种典型场景。方式 A:右键转换(看别人文章,挑段落抄)

适用场景:你在知乎/CSDN/简书/即刻看到一段写得特别好的内容,想引用到自己公众号。

操作步骤:

  1. 在网页上选中你想要的段落(支持跨多段、含图、含表)
  2. 鼠标右键 → 菜单里点「转为公众号格式并复制
  3. 页面右上角弹出一个绿色 toast:「✅ 已转换,复制成功」
  4. 切到公众号编辑器,Ctrl+V 粘贴——所见即所得,零调整

整个过程 3 秒。方式 B:工具栏一键(看到好的文章,整页转换)

适用场景:你在 Notion / VSCode 预览页 / 飞书文档 / 自己博客上写完一整篇文章,想原样搬到公众号。

操作步骤:

  1. 在文章所在的网页上,点浏览器右上角的插件图标
  2. 弹窗里点「转换整页并复制
  3. 插件自动读取当前网页的 HTML 源码(不需要你手动选中)
  4. 处理完成后弹出提示,剪贴板已就绪
  5. 切到公众号编辑器粘贴——整篇文章一次到位

3000 字的文章,从点击到复制完成,3 秒


五、效率对比:从 1.5 小时到 3 秒

我拿自己上周写的《某上市公司深度剖析》做了个对比测试。原文 4200 字,含 6 个表格、9 张图、2 个 Grid 卡片布局、若干外链。

排版环节没插件(手工)用插件(自动)
9 张图重新上传或改 src15 分钟0 秒
6 个表格手动改 firstRow 样式20 分钟0 秒
标题字号逐个调(24 个标题)12 分钟0 秒
2 个 Grid 卡片重新布局25 分钟0 秒
12 个外链手工剥离防审查8 分钟0 秒
div 嵌套结构肉眼检查10 分钟0 秒
字号、行距、缩进等微调18 分钟0 秒
合计1 小时 48 分3 秒

这还只是单篇文章的对比。我每周固定写 3 篇公众号——以前要花一整个下午在排版上,现在 30 秒搞定。省下来的时间,我能多写一篇文章,能多陪家里人吃顿饭,能多看一场电影。

更重要的是:

  • 手工排版会遗漏,插件不会
  • 手工排版会疲劳走神,插件不会
  • 手工排版会因为心情不好将就,插件永远是最佳状态

六、它是怎么做到的?(技术原理,不感兴趣可以跳过)

这一段写给同行里的技术朋友,非技术读者可以直接跳到下一节。

插件的核心是一段 550 多行的 JavaScript,叫 converter.js。它在浏览器沙盒里跑,纯前端、零依赖、零网络请求。流水线大致 13 步:

原始 HTML
  ↓ preClean         删 script、注释、危险标签
  ↓ inlineCSS        DOMParser 解析 style 块,把所有 CSS 选择器匹配到的样式合并到元素 style 属性
  ↓ patchHeading     h1~h6 补默认字号
  ↓ fixImageLazy     data-src → src
  ↓ neutralizeLinks  外链 href 剥离 / 锚点 a 转 span
  ↓ divToSection     所有 div → section
  ↓ headingsToSection h1~h6 → section(保留视觉权重)
  ↓ gridToFlex       CSS Grid → Flex
  ↓ addBoxSizing     section 补 box-sizing
  ↓ processFlex      Flex 子项补 calc + min-width
  ↓ simplifyTables   表头 thead → tbody.firstRow
  ↓ cleanup          冗余字符清理

剪贴板写入用的是浏览器标准 ClipboardItem(text/html + text/plain)——同时把富文本和纯文本写进剪贴板,公众号编辑器自动识别富文本,其他场景(比如纯文本编辑器)也能粘出来纯字。

整套方案最骄傲的一点:真正的隐私安全

  • 不传服务器
  • 不需要登录
  • 不收集任何信息
  • 不挂任何外部脚本
  • 断网照样能用

我自己写公众号经常聊上市公司财报、聊行业内部数据,这种隐私敏感性,市面上任何在线工具都给不了。这也是我必须自己写一个的根本原因。


七、零成本拿走:下载地址 + 3 步装好

文件大小:20KB(不到一张缩略图)

适用浏览器:Microsoft Edge、Google Chrome、以及所有 Chromium 内核浏览器(360、QQ 浏览器、Brave、Opera 等)

系统要求:Windows / macOS / Linux 均可

安装步骤

  1. 解压 wechat-compat-ext.zip 到任意目录(建议放 D:\tools\ 或 Documents 下,别放下载文件夹防止哪天清空了)
  2. 浏览器地址栏输入 edge://extensions/(Chrome 用户输入 chrome://extensions/
  3. 打开右上角「开发者模式」开关 → 点左上角「加载已解压的扩展」→ 选你刚才解压的文件夹

完事。浏览器右上角会多出来一个绿色的「公」字图标,看到它就说明装好了。

下载方式:评论区扣「插件」两个字,我把云盘链接发你。或者直接私信我「公众号插件」,自动回复给你下载地址。


八、写给同行的一段话

我写这个插件,完全没想过卖钱

我的本意是:遇到痛点 → 写工具 → 把工具喂给所有跟我有同样痛点的人。这个习惯从我刚入行写 BAT 脚本帮同事自动签到开始,到现在写浏览器扩展,一脉相承。

所以这个插件完全开源、完全免费、永远不收费

我后续会继续维护,遇到不兼容的场景(比如某个新平台的 HTML 结构特殊),你在评论区或者私信反馈给我,我加完规则更新版本号,云盘链接换成新版。

我对自己的承诺:只要我还在写公众号,这个插件就一直更新。

如果它帮你省了时间,最大的回报不是钱,是你把这篇文章转发给同样在排版地狱里挣扎的朋友——让他们也能解放出来。


九、最后说点感想

干了公众号运营,最深的一个体会是:好工具不在于多复杂,而在于多准确地命中一个真痛点

公众号排版这事,痛吗?痛得很。复杂吗?技术上其实不复杂,就是没人愿意花一上午认真做一个

我做了。3500 字的故事讲完,希望它能在你下次写公众号时,帮你省下那 1 小时 48 分。

省下来的时间,去做你真正想做的事。

——诗蕊-Siri她姐,一个被公众号排版逼到自己写插件的打工人


👉 关注我,回复「公众号插件」获取下载链接

👉 觉得有用,点个「在看」让更多同行看到

👉 关注我,了解更多使用小工具

Share

Categories:

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Post you may like

Categories