我写了个从 Obsidian 自动发布文章到微信公众号的工具

我之前写过一篇如何使用 Obsidian 管理个人知识库,里面提到我的文章创建与编辑都在 Obsidian 中完成,然后通过脚本自动同步到 Hexo 博客。最近我又把这套流程扩展到了微信公众号——写完文章,打个标签,运行脚本,草稿就自动出现在公众号后台了,不用复制粘贴,不用手动排版。

为什么要做这个

我的文章都是在 Obsidian 里用 Markdown 写的,之前要发公众号,得先把 Markdown 复制到 mdnice 格式化,再复制到公众号后台,步骤有点多。

我之前发博客已经实现了自动化,就想着公众号也搞一套类似的流程。参考 markdown-to-wechat 写了个 obsidian-to-wechat 的脚本工具。

它做了什么

整个流程很简单:

  1. 扫描 Obsidian 笔记目录,找到最近 3 天内修改过、且带有 Obsidian-to-Wechat-Tag 标签的文章
  2. 将 Markdown 转换成微信公众号兼容的排版样式,标题、代码块、链接等都会自动美化
  3. 自动下载文章中的图片,上传到微信素材库
  4. 调用微信 API,创建公众号草稿,已有草稿会自动更新,不会重复创建

你只需要在公众号助手 APP 预览后点发送就行了。

怎么用

在 Obsidian 笔记的第一行添加标签 Obsidian-to-Wechat-Tag,表示这篇文章需要发布到公众号。然后在公众号后台获取 AppID 和 AppSecret,配置好后运行脚本就行了。具体的安装和配置步骤可以看 GitHub 仓库的 README

和博客自动发布的配合

我现在的写作流程是这样的:在 Obsidian 里写完一篇文章,如果想发博客,就加上 Obsidian-to-HexoBlog-Tag 标签;想发公众号,就加上 Obsidian-to-Wechat-Tag 标签;两个都想发,就两个标签都加上。两套脚本互不干扰,各自处理各自的。

这样写作的时候就只需要专注内容本身,发布渠道通过标签来控制就行了。

注意事项

公众号文章与博客内容可能有差异,比如嵌入的视频平台不同,发布前建议预览确认一下。

另外微信 API 调用需要 IP 白名单,如果你不是固定宽带 IP,可以在代理工具中设置 api.weixin.qq.com 走代理,这样对微信 API 来说始终是同一个 IP,再将这个 IP 加到公众号白名单就行了。

deppwang wechat

评论默认使用 ,你也可以切换到 来留言。