首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >花5小时做了个开源工具,公众号链接一键变小红书图文

花5小时做了个开源工具,公众号链接一键变小红书图文

作者头像
月鹿造物
发布2026-09-08 21:19:29
发布2026-09-08 21:19:29
410
举报

那天晚上我盯着屏幕,手里是一篇刚发完的公众号文章,3000 多字,配了 6 张图。我想把它发到小红书。

就是这篇公众号文章
就是这篇公众号文章

小红书的规矩是 3:4 竖图,一组轮播图,每张 1242×1656。我的文章有标题、有段落、有配图、有引用块——这些东西要一页一页切开,排进竖图里,文字不能被裁,图片不能丢,翻页的地方不能把一句话劈成两半。

我先试了几个现成的工具。

有的只能做金句卡片——一张图配一句大字,不是我要的。我要的是一篇完整的文章被切成多页,读者翻过去像在读一篇被分页的长文,不是在刷一组海报。

有的能把文字排进图里,但排版很粗糙。文字和图片的间距不对,留白的位置不对,看起来像 Word 文档截图。

我不是设计师。我没法打开 Figma 一页一页手动排。就算能排,一篇 3000 字的文章切成十几页,每页调字号、调间距、调图片位置——我试了一次,花了快一个小时,排完觉得还是不好看。

然后我想:要不自己做一个?

1

我要的其实很简单

我要的东西用一句话就能说清楚:

丢一篇文章进去,自动给我切成一组小红书竖图。原文一字不改,图片原样保留,排版干净能读。

不是 AI 生图,不是重写文章,不是金句海报。就是把"在手机上看一篇长文"的体验,搬到小红书的轮播图里。

想清楚这一点之后,我打开 Claude Code,开始跟 AI 说我想要什么。

2

第一版跑出来,图片全没了

第一个能跑的版本大概花了一个多小时。

我给它一篇公众号的 HTML,它确实切成了十几页竖图。文字有了,排版的骨架也有了。

但图片全没了。

十几页纯文字,白底黑字,像一份打印出来的会议纪要。

第一版跑出来的效果——纯文字,一张图都没有
第一版跑出来的效果——纯文字,一张图都没有

问题出在公众号的图片加载方式上。公众号为了省流量,用了一种叫"懒加载"的技术——图片标签里写的不是真实地址,而是一个 1 像素的占位图。真实地址藏在另一个属性里。

我的工具老老实实读了图片标签,看到 1 像素,以为是广告追踪用的小点,直接过滤掉了。

所有图片,一张不剩。

3

图片回来了,但排版不对

修完图片识别的逻辑之后,我再跑一次。

22 张图片全部出现了。

但新问题来了:有些页面的文字只占了上半部分,下面一大片空白。不是故意留白,是切页的时候算错了位置,文字被推到了下一页,当前页就剩半页空。

这个问题折腾了一阵。一开始我以为是字数估算不准,后来发现根本原因是——文字在不同字号、不同行高下占的真实像素是不一样的,靠估算永远有误差。

最后的解决办法是用真浏览器去量。让 Playwright 把每一段文字、每一张图片都渲染出来,量出真实的像素高度,再根据真实高度决定哪些内容放在同一页。

慢了大概 5 秒。但切出来的页面,文字和图片的位置终于对了。

4

封面图,做了又删了

公众号文章都有一张封面图——就是你在微信聊天里转发时看到的那张图。

我一开始想:小红书第一页应该有个封面,用公众号的封面图多好。

于是做了一版:第一页是封面图 + 大标题 + 摘要,正文从第二页开始。

跑出来一看,不对。

封面图占了半页,下面的摘要只有两三行,剩下一大片空白。看起来像一个 PPT 的标题页,不像一篇文章的开头。

封面图独占首页的效果——下面一大片空白
封面图独占首页的效果——下面一大片空白

我跟 AI 说:首页排版下半部分是空白的,体感不好,还不如不要封面图。

删了。

后来又想到一个折中方案:如果公众号有封面图,而且正文里没有用过这张图,就把它当作一张普通配图,放到第一页最上方。不独占一页,不加特殊排版,就是一张图。

这样第一页有点视觉入口,但不破坏文章的阅读节奏。

技术上能做,不代表产品上应该做。

这是整个过程里我最深的一个体会。AI 可以帮我把任何功能实现出来,但"这个功能要不要"是我自己的判断。

5

一个红点,引出一整套清理规则

测试另一篇公众号文章的时候,我发现第二页中间有个奇怪的红点。

就一个点,但它占了一大块空白区域,看起来很突兀。

查了一下,是公众号底部的互动引导——"觉得好看,请点这里 ↓↓↓"。那个红点是一张 GIF 动图,被当成正文图片塞进了小红书图里。

我当时的反应不是"把这个红点过滤掉就行了"。

我问 AI:这种相关的一系列问题,我们会进行处理吗?不单单是这一个点的问题。

这句话把一个 bug 变成了一个系统。

我们梳理了公众号底部常见的噪音类型:

互动引导:"觉得好看""点个在看""点赞""分享"

署名信息:"来源""本期编辑""责编""校对"

关注引导:"扫码关注""长按识别""点击下方名片"

推荐阅读:"推荐阅读""往期回顾""你可能还喜欢"

装饰图片:点赞引导 GIF、二维码附近的小图、分割线

全部过滤掉。

而且每一条被过滤的内容都会被记录下来——是被哪条规则删的、原文是什么、是文字还是图片。不是黑箱操作,是可以回头查的。

6

一条链接走完全流程

到这一步,工具已经能吃 Markdown 和 HTML 文件了。但真实使用场景是什么?

我发完一篇公众号,想顺手发小红书。这时候我手里有什么?一条公众号链接。

我不会去后台下载 HTML,不会去整理图片文件夹,不会去导出 Markdown。我就想把链接丢进去,剩下的事工具自己搞定。

AI 跟我说:这个能做,给我一个 URL,我用浏览器打开页面,抓正文、下图片、自动切页。

试了一下,文字抓到了,但图片又没了。

又是公众号的懒加载——浏览器打开页面的时候,图片还没加载出来,抓到的全是占位图。

调了几轮之后,让浏览器等页面加载完再抓,同时识别公众号图片的真实地址,把远程图片全部下载到本地缓存。

再跑一次,内容和图片都有了。

输入

公众号链接

yuelu-xhs

输出

小红书图文

自动抓取正文 · 自动下载图片 · 自动切页排版 · 自动过滤噪音

一条公众号链接,进去就出一组小红书图文。不需要下载文件,不需要整理素材,不需要任何中间步骤。 

这是我觉得整个工具最值钱的功能。我试过的其他工具都没有做到这一点——要么需要你先导出文件,要么只能处理纯文字。而 yuelu-xhs 是直接给链接就行。

7

最后一个问题:有时候公众号页面打不开

跑测试的时候偶尔会遇到公众号链接超时。同一条链接,第一次打不开,第二次又好了。

不是代码的问题,是微信服务器偶尔波动。

加了自动重试:最多试 3 次,每次失败关掉浏览器重新开。第 3 次还失败才报错。

这个功能平时没用。但在真实使用的时候,它会默默帮你兜住那些偶发的网络问题。

8

5 小时,从想法到开源

从"我不想手动切图"到"一个能跑的工具",和 AI 一起大概花了 5 小时

最终效果——图文混排,排版干净
最终效果——图文混排,排版干净

现在它能做的事:

丢一个 Markdown 文件,自动切成小红书竖图

丢一个公众号 HTML,自动提取内容和图片,切成竖图

丢一个公众号链接,自动打开页面、抓取正文、下载图片、切成竖图

图片放不下的整张推到下一页,不裁切

公众号底部的噪音自动过滤

图片下载失败会有占位提示,不会悄悄丢图

每页底部只有"月鹿造物"和页码。不放小红书号——因为小红书 App 自带账号水印,加了就重了。

我把它开源了,叫 yuelu-xhs

如果你也在运营公众号 + 小红书,每次发完公众号还要手动切图发小红书,可以试试。

GitHub 地址:https://github.com/lunaark/yuelu-xhs

安装两步:

git clone https://github.com/lunaark/yuelu-xhs.git ~/.claude/skills/yuelu-xhs

npm install -g playwright && npx playwright install chromium

用法:

把 xxx.md 排成小红书图文

把 https://mp.weixin.qq.com/s/xxx 排成小红书图文

它不只是 Claude Code 的 Skill——Cursor、Windsurf、Trae、Codex,几乎所有 AI 编程工具都能用。装好之后用自然语言说就行。

现在每次公众号发完,我打一行字,等 5 秒,十几张图就躺在文件夹里了。打开小红书,上传,发布,不到一分钟。

写这篇文章的时候我回想了一下,之前手动切图那一个小时到底在干嘛。

大概是在说服自己"也没那么麻烦"吧。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-05-01,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 我要的其实很简单
  • 第一版跑出来,图片全没了
  • 图片回来了,但排版不对
  • 封面图,做了又删了
  • 一个红点,引出一整套清理规则
  • 一条链接走完全流程
  • 最后一个问题:有时候公众号页面打不开
  • 5 小时,从想法到开源
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档