对于喜欢写博客的人来说,一个舒服的写作流程非常重要。
很多技术作者都会选择 Obsidian 作为自己的知识管理和写作工具,因为它拥有:
- 本地 Markdown 存储
- 强大的插件生态
- 灵活的笔记管理方式
- 不受平台限制的创作体验
但是,当文章需要发布到自己的博客时,传统流程依然比较繁琐:
- 在 Obsidian 编写 Markdown
- 复制文章内容
- 登录 CMS 后台
- 上传图片
- 设置标题、分类、封面
- 发布文章
重复操作不仅浪费时间,也容易打断写作状态。
所以,我基于开源项目 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 安装(推荐)
- 打开 Obsidian → 设置 → 第三方插件 → 浏览社区插件,搜索 BRAT 并安装启用
- 进入设置 → BRAT → Add Beta Plugin,填写
violet27chen/sanity-obsidian-plugin - 等待安装完成,在设置 → 第三方插件中找到 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 已经开启。
为什么做这个项目?
我一直认为:
写作工具应该服务作者,而不是让作者适应后台系统。