写公众号最烦什么。
不是选题,不是起标题。是排版。
Markdown 里写得漂漂亮亮的文章,Ctrl+C 进后台,标题丢了,加粗垮了,代码块碎成渣。图片更离谱,要么原地消失,要么缩成一张看不清的缩略图。
你开始手动调。字号、行距、段间距、颜色。一张一张重新传图。
半小时过去了。
文章本身可能只写了二十分钟。
这就很扯。用的明明是世界上最轻的标记语言,发布这一步反而最重。
吭哧吭哧排了半年版,实在受不了了。
自己写了一个插件。

一个 Obsidian 插件。文章写完,点一下,直接进公众号草稿箱。排版从半小时缩到一分钟。
自己用了半年,公众号靠它稳定的排版风格默默涨了两万多粉。
开源了。

最近把主题格式全面迭代了一遍,适配了甲木×摸鱼小李的设计组件库。内置 7 套主题,每套都打磨过标题、列表、引用、代码块。不是那种换个背景色就敢叫一套主题的东西。
整个开发过程没手写一行代码。全程用 Codex 跟 Agent 对话,Vibecoding 搞出来的。
一个一个说。
实时预览
点左边插件图标,右边直接弹出公众号风格的预览面板。写文章的时候所见即所得。不用来回切窗口,不用脑补发布后长什么样。

7 套主题,一键切换
极简、摸鱼绿、红白、石墨、留白禅意、摸鱼票据、橄榄手记。点一下换一套。
最近迭代了甲木×摸鱼小李的设计组件库,格式精度上了一个台阶。每套主题的标题层级、引用块、代码高亮都单独调过。不是批量套皮。

封面同步
封面直接同步到草稿箱。不用去后台单独传一次。
这个细节省掉的动作,叠起来比你想象得多。

格式所见即所得
字体、字号、加粗、斜体、引用、代码块、列表。Markdown 该有的格式,预览面板里全能看到。调完什么样,发出去就什么样。
多账号配置
一个插件绑多个公众号。AppID、AppSecret、代理地址填进去,想发哪个号切一下就行。

网页预览
发布前在浏览器打开看一眼。确认没问题,再发。不用发完发现格式翻车了再删。

一键发布到草稿箱
最核心的一个。
写完文章,点一下。图片自动上传到微信 CDN,格式完整进草稿箱。不会裂图,不会丢格式。
打开公众号后台,文章已经在草稿箱里躺着了。直接扫码发。

两步。
第一步,安装。
直接把项目链接丢给 Agent。
帮我把这个项目下载到 Obsidian 插件目录,放到 .obsidian/plugins/obsidian-wx/ 下面
一句提示词就装好了。
第二步,开始用。
打开 Obsidian,点左下角齿轮,进第三方插件。确认 obsidian-wx 已经安装,开关开着。

左边点公众号图标,随便打开一篇文章。右边就是插件面板。

7 套主题,点一下换一套。每套都很漂亮,甲木×摸鱼小李的设计格式,质感在线。格式随便调,封面直接上传,多账号随便切。

要发布到草稿箱的话,得先配好账户。
点设置齿轮,进 obsidian-wx 设置,添加账户。名称随便起,AppID 和 AppSecret 去公众号后台开发接口管理申请。出口代理填你自己服务器的固定地址。
最关键的一步,公众号后台 IP 白名单,必须加上你代理服务器的固定公网 IP。没配这个,发布一定挂。

配好之后,回到文章,点发布到草稿箱。
打开公众号后台看一眼。图片全带过来了,格式完整。

觉得有用,去 GitHub 标个 Star,谢了。
全程 Vibecoding。没写一行代码,就四步。
第一步,沟通需求。
把你要的东西用自然语言告诉 AI。不用写 PRD,不用画流程图。大概说清楚就行。
把这段话发给 AI。
帮我在 Obsidian 里做一个公众号排版插件。写完文章按快捷键,右边弹出预览面板,预览可以编辑格式,能换主题配色,能一键发布到公众号草稿箱。图片自动上传不裂,SVG 转 PNG。支持多账号切换。给我梳理产品方案,并写成 markdown 文档。
AI 会自己拆需求、列功能、出方案文档。

第二步,调整需求。
AI 列的方案,你来砍。
它会给出很多功能建议。不需要的,直接划掉。比如格式功能它列了一堆花里胡哨的,老王不需要,砍了。
缺的,直接说。
补充多账号配置的功能,目前无法进行切换账号。
一句话,它就补上。
最后出来的需求文档,才是你的真实需求。这一步不能跳。跳了,后面写出来的东西大概率不是你想要的。
第三步,开发插件。
纯后台功能,不需要单独做 UI。把这句话发给 AI。
开始开发插件,开发完后,帮我把插件打包,然后自动复制到我的 Obsidian vault 的插件目录里。
AI 开始拆任务,自己规划、执行、测试。老王这次等了大概四十分钟。

打包完自动丢进了插件目录。打开 Obsidian,插件已经在那了。
第四步,验证功能。
打开 Obsidian,点齿轮,点第三方插件。确认插件已开启。
左边点公众号图标,右边面板弹出来。7 套主题挨个切一下。格式、封面、账号配置,过一遍。

然后来真的。配好 AppID、AppSecret、代理地址,点发布到草稿箱。打开公众号后台。
图片全在。格式完整。
成了。
公众号草稿箱 API 要求 IP 白名单。本机 IP 一变,发布就挂。挂得莫名其妙,提示还特别模糊。
三种解决思路。
第一种,直接用本机 IP。去公众号后台把当前 IP 加进白名单。最简单,但家用宽带 IP 会变,路由器一重启就换了。临时用还行,长期一定翻车。
第二种,搞一台云服务器。阿里云、腾讯云都行,一年几十块。把服务器固定 IP 加进白名单,插件请求走服务器转发。稳,就是多一步部署。不会部署的话,把项目文档丢给 Agent,它能帮你搞定。
第三种,部署到 GitHub。用 GitHub Actions 搭一个转发服务。GitHub 出口 IP 相对固定,白名单加一次管很久。不用额外买服务器,不过操作上要熟悉 GitHub 配置,而且会多一层网络延迟。
老王选了第二种。配好之后,半年没再因为 IP 问题挂过。
第一版其实只做了一个 HTML 生成器。把 Markdown 转成预览页面,复制粘贴过去。图片走的 base64,经常复制不过去。换台电脑,直接裂。

不好用。但验证了一件事,在 Obsidian 里搞定排版这个方向是对的。
第二版直接上 API。对接微信草稿箱接口,图片走微信 CDN,格式直接写入草稿。不再复制粘贴。

两个版本中间隔了无数次跟 AI 的对话。反复改,反复测。看起来只是一个功能点的变化,但插件的架构整个翻了一遍。
过程不算短,全程没手写过一行代码。
这就是 Vibecoding。你跟 AI 说人话,AI 帮你写代码。你负责判断,它负责执行。
开源了。
所有提示词老王都整理到了文档里。
跟着一步步操作就行。不需要写代码,也能搞出一个自己的 Obsidian 插件。
插件会一直迭代的哈~
夜雨聆风