
我之前写过一篇如何使用 Obsidian 管理个人知识库,里面提到我的文章创建与编辑都在 Obsidian 中完成,然后通过脚本自动同步到 Hexo 博客。最近我又把这套流程扩展到了微信公众号——写完文章,打个标签,运行脚本,草稿就自动出现在公众号后台了,不用复制粘贴,不用手动排版。
为什么要做这个
我的文章都是在 Obsidian 里用 Markdown 写的,之前要发公众号,得先把 Markdown 复制到 mdnice 格式化,再复制到公众号后台,步骤有点多。
我之前发博客已经实现了自动化,就想着公众号也搞一套类似的流程。参考 markdown-to-wechat 写了个 obsidian-to-wechat 的脚本工具。
它做了什么
整个流程很简单:
- 扫描 Obsidian 笔记目录,找到最近 3 天内修改过、且带有
Obsidian-to-Wechat-Tag标签的文章 - 将 Markdown 转换成微信公众号兼容的排版样式,标题、代码块、链接等都会自动美化
- 自动下载文章中的图片,上传到微信素材库
- 调用微信 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 加到公众号白名单就行了。