我改造了一个 Obsidian 插件:写完文章,一键同步到自己的博客

发布于 2026-08-01 12:01 1250 字 7 min read ... 访问量

基于开源项目 drewlyton/sanity-obsidian-plugin 二次开发,打造 Obsidian → Sanity → 博客三向同步工作流。支持一键发布、字段映射、自动图片上传,告别复制粘贴的繁琐流程

对于喜欢写博客的人来说,一个舒服的写作流程非常重要。

很多技术作者都会选择 Obsidian 作为自己的知识管理和写作工具,因为它拥有:

  • 本地 Markdown 存储
  • 强大的插件生态
  • 灵活的笔记管理方式
  • 不受平台限制的创作体验

但是,当文章需要发布到自己的博客时,传统流程依然比较繁琐:

  1. 在 Obsidian 编写 Markdown
  2. 复制文章内容
  3. 登录 CMS 后台
  4. 上传图片
  5. 设置标题、分类、封面
  6. 发布文章

重复操作不仅浪费时间,也容易打断写作状态。

所以,我基于开源项目 drewlyton/sanity-obsidian-plugin 进行了二次开发,并针对个人博客使用场景进行了改造。

项目地址: violet27chen/sanity-obsidian-plugin

插件截图
插件截图

Sanity for Obsidian:打造 Obsidian、Sanity、博客三向同步工作流

这个插件的目标很简单:

在 Obsidian 中完成创作,一键同步到 Sanity,再自动展示到自己的博客。

整体流程:

Obsidian

发布同步

Sanity CMS

博客网站

最终形成三个环节互相连接:Obsidian ↔ Sanity ↔ Blog

为什么选择 Obsidian + Sanity?

Obsidian:专注写作

Obsidian 最大的优势就是 Markdown 和本地优先。文章始终保存在自己的设备中,你可以继续使用熟悉的 Markdown 语法,不需要适应复杂后台编辑器。

Sanity:负责内容管理

Sanity 是一个现代化 Headless CMS,负责内容存储、图片管理、字段管理、API 提供、多端内容分发。博客前端只需要读取 Sanity 数据即可展示。

Blog:负责最终展示

无论你的博客使用 Astro、Next.js、Nuxt 还是其他前端框架,都可以通过 Sanity 获取文章内容。写作、管理、展示三个部分完全分离。

插件主要功能

1. Obsidian 发布到 Sanity

在 Obsidian 写完文章后,点击「Publish to Sanity」,插件会自动创建 Sanity 文档、同步文章内容、上传图片资源、保存文档 ID,不需要再次复制粘贴。

2. Sanity 同步回 Obsidian

除了发布,也支持拉取内容。你在 Sanity 后台修改文章后,可以重新同步回来继续编辑。

3. 支持博客字段映射

不同博客结构不同,插件不会固定字段。你可以自由映射标题、slug、封面、分类等字段,适合技术博客、文档网站、知识库、产品站等场景。

4. 自动处理图片

写文章时插入的图片,发布时插件会自动上传到 Sanity 并转换为 CDN 地址,不需要进入 CMS 后台重新上传。

安装与配置教程

准备工作

开始之前,你需要:

  • Obsidian
  • Sanity 项目
  • 一个支持 Sanity 数据读取的博客

如果没有 Sanity 项目,前往 sanity.io 注册并创建项目。

第一步:安装 Obsidian 插件

目前插件还没有上架 Obsidian Community Plugins,需要手动安装。

方法一:BRAT 安装(推荐)

  1. 打开 Obsidian → 设置 → 第三方插件 → 浏览社区插件,搜索 BRAT 并安装启用
  2. 进入设置 → BRAT → Add Beta Plugin,填写 violet27chen/sanity-obsidian-plugin
  3. 等待安装完成,在设置 → 第三方插件中找到 Sanity 并开启

方法二:手动安装

进入你的 Obsidian Vault 的 .obsidian/plugins 目录,执行:

git clone https://github.com/violet27chen/sanity-obsidian-plugin.git

目录结构:.obsidian/plugins/sanity-obsidian-plugin

重新打开 Obsidian,在设置 → 第三方插件中启用 Sanity。

第二步:创建 Sanity API Token

进入 Sanity Dashboard → Project → API → Tokens → Add API Token,权限选择 Editor(不要选 Viewer,因为发布文章需要写入权限),复制生成的 Token。

第三步:配置插件

进入 Obsidian → 设置 → Sanity,填写:

  • API Token:上一步生成的 Token
  • Project ID:在 Sanity Dashboard → Project Settings 中复制
  • Dataset:一般填 production
  • Type Name:你的文章类型,如 post

第四步:配置文章字段

假设博客文章结构为:

post:
  title
  slug
  body
  cover
  categories

插件设置中对应填写标题、正文、文件名、额外字段即可。

第五步:发布第一篇文章

在 Obsidian 创建 Markdown 文件,写好内容后打开命令面板(Ctrl + P),搜索 Sanity,选择「Publish to Sanity」。插件会自动创建文章、上传图片、保存 sanity_id。

第六步:博客展示文章

完成同步后,博客读取 Sanity 数据即可展示。以后每次打开 Obsidian → 写文章 → 点击发布 → 博客更新,一气呵成。

常见问题

发布失败:403 insufficientPermissions

Token 权限不足,重新创建 Token 并选择 Editor 角色。

图片没有上传

检查图片路径是否正确、是否使用 Markdown 图片格式、Token 是否有上传权限。

找不到插件

确认设置 → 第三方插件中 Sanity 已经开启。

为什么做这个项目?

我一直认为:

写作工具应该服务作者,而不是让作者适应后台系统。

... 访问量
© 2026 violet @qiyuan