Obsidian 插件 - 打通从 Obsidian 本地创作到多平台发布的最后一步

AI
AI文摘 此内容由AI根据文章内容自动生成
AI Summary

项目介绍

Obsidian-to-Publish 这个插件一开始是用来解决我自己多平台发布的痛点。

以前在 Obsidian 创作完成后,要同步到其它平台很不方便,尤其是图片上传这活,每个平台都得上传一遍,手动操作一两次后就劝退了。所以我就想着把文档从 Obsidian 上传到多平台这一步直接解决掉。

目前这个插件支持 Obsidian 文稿一键上传到微信公众号、飞书文档、X、Substack、知乎、bilibili 图文、小红书图文、掘金等平台,后续会增加更多平台支持。

大家现在看到的这篇文章,就是用这个插件同步到公众号的。

01-Input/07-Clipping/assets/a4bc43f1cce993387380ec032af845e3_MD5.jpg

支持平台

平台推荐方式内容格式说明
微信公众号官方 API,也可复制富文本推荐配置 AppID / AppSecret 后创建草稿箱草稿
飞书云文档官方 API,也可复制Markdown推荐配置飞书自建应用后导入为新版云文档
知识星球插件复制 / 配套 Chrome 插件富文本适配标题、列表、表格、空行等常见排版
知乎插件复制 / 配套 Chrome 插件富文本本地图片通常需要手动上传或使用远程图片链接
掘金插件复制 / 配套 Chrome 插件Markdown本地图片通常需要先上传为远程图片
Substack插件复制 / 配套 Chrome 插件富文本部分图片场景需要手动确认
X Articles插件复制 / 配套 Chrome 插件Markdown面向长文编辑器
小红书图文插件复制 / 配套 Chrome 插件纯文本适合先生成文字草稿,再在平台内处理图片
Bilibili 图文插件复制 / 配套 Chrome 插件富文本部分图片场景需要手动确认

接下来和大家分享这个插件的核心功能和具体使用。

Obsidian-to-Publish 的核心功能

严格来说,Obsidian-to-Publish 这个项目里有两个插件,一个是 Obsidian 插件,一个是配套使用的 Chrome 浏览器插件。

Obsidian 插件的核心功能就两个:「复制」,以及「同步到草稿箱」

「复制」很好理解,就是你可以手动将自己的 Obsidian 本地文档复制到其它平台。不过要注意,不是所有平台都能完整解析复制过去的 Markdown 文档。

目前只有在微信公众号、Substack、知识星球这三个渠道实现了对完整图文的解析,其它如 X、知乎、掘金等平台则都只能粘贴纯文本(本地图片基本都会挂)。

01-Input/07-Clipping/assets/eb51e69dddf6f4cec4f785937872d9d6_MD5.jpg

所以我会更建议大家用「同步到草稿箱」,它不用你自己手动「复制」,就可以直接导入到你选中的平台的草稿箱或编辑器,并且支持本地图片的自动上传,完全解放你的双手。

如果你是要将 Obsidian 文档同步到公众号草稿箱或飞书文档的指定目录,只需要安装 Obsidian 插件。因为这两个平台都提供了官方 API,所以通过这个插件就能直接实现文档同步; 

但如果你还要同步到 X、Substack、知乎、掘金、小红书图文等其它平台编辑器,就还需要安装配套的 Chrome 插件。Chrome 插件在这个任务中相当于一个内容中转站的角色,这样大家就不用去找对应平台的 Cookies 这么麻烦,也不会出现只复制了文本,图片还得自己一个个手动上传的情况。

插件支持单平台同步,也可以选中多平台进行批量同步。

如果你和我一样,主要在 Obsidian 本地创作,并且有多平台发布需求,那么就可以进入下一步的「安装使用」。

需要注意的是,这个插件只解决 Obsidian 文档怎么一键导入多平台的草稿箱/编辑器的问题,但不会去碰「发布」。因为我认为「发布」这个动作应该是由我们确认后再点击的。

Obsidian-to-Publish 的安装和使用

先说 Obsidian-to-Publish 插件在 Obsidian 中的安装,有三种方法:

方法一:通过 BRAT 插件安装

BRAT 这个插件我之前分享过几次,是用来安装测试版 Obsidian 插件的插件。这个方法特别适合不想手动复制文件的用户。

在 Obsidian 中依次打开「设置 → 第三方插件」,在「允许社区插件」中点击「退出受限模式」(在 1.13.4 版本之前叫做「安全模式」)。

01-Input/07-Clipping/assets/7eb27ea14196aadaf4942f2cd2b0bf1e_MD5.jpg

搜索 BRAT,然后完成安装和启用。

01-Input/07-Clipping/assets/1efeb08aefdc53b1db9037e83d654df3_MD5.jpg

接着打开 BRAT的设置面板,在面板中找到「Beta插件列表」项,点击最右侧的「+」;

在弹窗中添加我的插件项目仓库地址:https://github.com/nextcaicai/obsidian-to-publish,选择 latest version,最后点击「add plugin」就可以完成安装。

01-Input/07-Clipping/assets/bf297ae76fb4e144d5ffd2d3968c5cd6_MD5.jpg

最后就可以回到「设置 → 第三方插件」,启用 Obsidian to Publish

01-Input/07-Clipping/assets/e99d18fd8c557d758512d1223f3f4762_MD5.jpg

方法二:把项目发给 Agent 安装

当然也可以用 AI First 的方法,就是让你的主力 Agent 如 CC、Codex、Cursor等,让它帮你找到 Obsidian 插件所需文件并安装到指定 vault。

你可以直接把下面这段话发给 Agent:

请帮我安装这个 Obsidian 插件项目:https://github.com/nextcaicai/obsidian-to-publish目标 vault 路径是:<填入你的 vault 绝对路径>请在项目里找到 Obsidian 实际加载需要的文件:- manifest.json- main.js- styles.css如果 main.js 不存在或不是最新的,请先按项目说明运行构建命令。然后把这 3 个文件复制到:<Vault>/.obsidian/plugins/obsidian-to-publish/注意:- 不要修改我的笔记内容。- 不要删除或覆盖其它插件目录。- 不要读取、输出或提交 data.json、AppSecret、token 等敏感信息。- 安装完成后告诉我需要在 Obsidian 里启用或重载插件。

记得要替换上面的 vault 路径,找到自己目标 vault 路径的方法也很简单,将鼠标移到左下角的 vault 名称上方,右键点击「复制路径」即可完成。

01-Input/07-Clipping/assets/c56dc3638cd880ec96e385bf04c2cf3a_MD5.jpg

这个方法也很方便:Agent 不需要理解整个项目,只需要找到 Obsidian to Publish插件实际加载的 3 个文件,并把它们放到正确目录就完事。

方法三:从 Releases 下载文件安装

如果你不想安装 BRAT,也不想让 Agent 操作,可以直接从项目右侧的 GitHub Releases 下载已经构建好的插件文件。

打开项目的 Releases 页面,选择最新版本。

01-Input/07-Clipping/assets/c1538cb6dbc20f189cb98191fe0b3b5e_MD5.jpg

下载发布附件里的插件文件。如果有压缩包,先解压;如果是单独文件,请下载下面 3 个文件:

  • manifest.json
  • main.js
  • styles.css

然后在你的 vault 里创建插件目录:< Vault >/.obsidian/plugins/obsidian-to-publish/,把下载到的 3 个文件放进去即可。后续步骤则是一样的。

三种方法各有优劣,看你个人偏好。由于目前插件还是在频繁开发的阶段,我建议用方法一,也就是通过 BRAT 插件安装,会更方便同步插件的最新功能。

安装配套的 Chrome 插件

就像前面介绍的,如果你只用同步到微信公众号或飞书云文档,不需要安装 Chrome 插件。

但如果你想一键同步到其它平台编辑器,例如知乎、知识星球、X、Substack、Bilibili、小红书、掘金,就需要安装配套的 Chrome 插件。

安装步骤也很简单:

先确认 Obsidian to Publish 已经在 Obsidian 里启用(如果你已经完成了前面步骤,那就是已经启用了)。

接着在 Obsidian 中依次打开「设置 → 第三方插件 → Obsidian to Publish → 设置」 

01-Input/07-Clipping/assets/db09485bc01d4eba76ab49cc44abecad_MD5.jpg

在面板中找到「Chrome 插件连接」,打开「启用本地连接」。

01-Input/07-Clipping/assets/9f793bf68192865c34eb301c97ef0239_MD5.jpg

在这里,你可以复制连接令牌,并且确认本地端口 (这两个参数后面会用到)。

接着就是大家比较熟悉的操作,在 Chrome 打开 chrome://extensions,打开「开发者模式」。

点击左上角的「加载已解压的扩展程序」,选择本项目里的 chrome-companion/ 目录(前提是你已经将项目下载到了本地并完成解压缩)。

打开扩展选项页,填入端口和连接令牌(对应前面的两个参数)并保存。

01-Input/07-Clipping/assets/a8af522c5a0e0fd54d9a7ae85208e6ac_MD5.jpg

然后点击「保存并连接」,如果下方显示「已连接」,就代表我们的配套插件已经连接上 Obsidian 本地 Bridge。

前置事项搞定了,我们就可以开始内容多平台同步了。下面会分为微信公众号、飞书文档,以及其他平台进行分别介绍:

同步微信公众号

要实现直接同步到微信公众号草稿箱,需要借助官方 API,所以需要提前获取两个关键元素,也就是我们的公众号的 AppID和 AppSecret

打开 微信开发者平台,扫码登录后进入控制台,在「我的业务」中选择「公众号」,就会进入公众号的「基础信息」页面。

01-Input/07-Clipping/assets/740dbb3ab816e5917d544bffd5686267_MD5.jpg

在这里,你可以直接获取 AppID和 AppSecret,其中 AppSecret的启用需要按平台提示完成扫码验证后才会出现,复制后注意妥善保存(如果丢失了,就只能重置)。

接着回到 Obsidian,打开 Obsidian to Publish 的设置面板,在「微信公众号草稿箱」分类下打开「启用微信官方 API」,将前面获取的 AppID和 AppSecret填入对应选项。

01-Input/07-Clipping/assets/16b8b2bd3a46303ee277ddb39aec0f75_MD5.jpg

这里还可以填写作者、默认摘要、原文链接、留言设置等,非必选项,看个人需求。

最后就可以点击「同步草稿箱」测试连接情况。

连接过程中可能会提示失败,原因大概率是「微信公众号 IP 白名单未配置」。不过没关系,我在插件中做了个失败时检测微信出口 IP 的功能。

这时候只需要点击「复制 IP」,打开微信开发者平台把 IP 添加到「API IP 白名单」,重新跑一遍连接。

01-Input/07-Clipping/assets/716a2713d917a3226bec3cb372cad229_MD5.jpg

连接没问题的话,你去刷新公众号后台就能会在草稿箱看到同步过去的文章。

为了避免出现同一篇文章在调整后重复出现在草稿箱的情况,Obsidian-to-Publish 插件做了个草稿 ID 识别,后续 Obsidian 本地文档有任何更新,点击「同步草稿箱」就会完成同步更新。

使用飞书文档

同步到飞书云文档,也是通过官方 API 实现。在这里,需要获取三个元素,分别是飞书 AppID、飞书 AppSecret,以及目标文件夹 Token 或 URL。

如果你之前用 Agent 连接过飞书,那你对前五步会非常熟悉(熟悉的话可以跳过这五步):

第一步:进入 飞书开放平台;

第二步:创建一个自建应用(甚至你可以直接用现成的);

第三步:在「权限管理」页给应用添加文档/云空间相关权限(可以直接勾选云文档全部功能),并按飞书提示发布或启用应用;

01-Input/07-Clipping/assets/0c5e999efe40a514ced731c73fb192f9_MD5.jpg

第四步:在「应用能力」页添加「机器人」能力;

第五步:在「凭证与基础信息」页获取 App ID 和 App Secret

接下来就不一样了。

第六步:依次点击「云文档 → 云盘 → 新建 → 文件夹」,在飞书云空间里创建一个目标文件夹。

01-Input/07-Clipping/assets/630fd9ffe8df4fcd2016e6bfddad2e6d_MD5.jpg

第七步:把这个文件夹共享给包含该应用机器人的群组,

01-Input/07-Clipping/assets/edd08b712d18190778b7bab0172e0cd1_MD5.jpg

记得要授予机器人文档编辑权限。

01-Input/07-Clipping/assets/2a9a5a7da0c629ef8e961095dfa81326_MD5.jpg

第八步:搞定前面的步骤后,就可以复制目标文件夹 URL,或从 URL 中复制文件夹 token。

01-Input/07-Clipping/assets/bd4a6e27d815a7fe861243ca56006c60_MD5.jpg

第九步:打开 Obsidian to Publish 的设置面板,找到「飞书云文档」模块,就可以点击「启用飞书开放平台 API」,并且将前面获取到的飞书 AppID、飞书 AppSecret、目标文件夹 Token 或 URL 依次填入对应的选项框中。

01-Input/07-Clipping/assets/a86273b9a6bec9cdc4b4ca8636fca0aa_MD5.jpg

第十步:也是最后一步,就是打开要同步的笔记,在插件预览面板选择「飞书云文档」,然后点击「同步草稿箱」按钮,成功后打开返回的飞书文档链接检查内容即可(注:同步过程需要一定时间,尤其是图片上传不会实时)。

如果同步失败,优先检查三件事:应用权限是否已生效目标文件夹是否已共享给应用机器人文件夹 token 是否填写正确

使用其它平台(X、知乎、B 站等)

由于其它平台没有提供官方 API,所以我们就需要借助 Chrome 浏览器插件作为中转站。

在正式同步之前,要确认 Obsidian 插件和 Chrome 插件都已安装,并且确认 Chrome 浏览器里已经登录目标平台账号。

接着就可以在 Obsidian 打开要同步的笔记,在插件预览面板选择目标平台,点击「同步草稿箱」按钮。

Chrome 插件会打开或定位目标平台编辑器,并自动填入草稿,包括标题、正文(含图片),下面就是同步到知乎的例子:

图片[21]-Obsidian 插件 - 打通从 Obsidian 本地创作到多平台发布的最后一步-大海资源库

安全说明

最后,聊聊大家比较关心的安全问题。

Obsidian to Publish 插件默认本地处理,预览、复制、本地图片嵌入不会联网。

会联网的场景只有启用微信官方 API 并点击创建/同步草稿、微信出口 IP 检测、启用飞书开放平台 API 并点击同步、点击打开编辑器或使用 Chrome companion

插件不会把笔记、图片、密钥发送到作者服务器,也没有遥测。

配套的 Chrome 插件则是通过本机 WebSocket 接收 Obsidian 发来的发布包,然后在你已登录的平台页面上尝试填入内容。它不会把发布包发送到服务器(大家可以把项目丢给 AI 检查)。

下载地址

如果这个插件对你有帮助的话,也欢迎给我的项目点个 Star,你们的支持对我来说很重要 ~

© 版权声明
THE END
点赞9分享
及时反馈~ 抢沙发

请登录后发表评论

    暂无评论内容