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

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

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

  • 本地 Markdown 存储

  • 强大的插件生态

  • 灵活的笔记管理方式

  • 不受平台限制的创作体验

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

  1. 在 Obsidian 编写 Markdown

  2. 复制文章内容

  3. 登录 CMS 后台

  4. 上传图片

  5. 设置标题、分类、封面

  6. 发布文章

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

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

项目地址: Pasted image 20260801105416.png violet27chen/sanity-obsidian-plugin

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

这个插件的目标很简单:

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

整体流程:

Obsidian
发布同步
Sanity CMS
博客网站

最终形成:

Obsidian
Sanity
Blog

三个环节互相连接。

你可以:

  • 在 Obsidian 写文章

  • 在 Sanity 管理内容

  • 在博客网站展示文章

为什么选择 Obsidian + Sanity?#

Obsidian:专注写作#

Obsidian 最大的优势就是 Markdown 和本地优先。

文章始终保存在自己的设备中:

---
title: Astro 入门教程
slug: astro-guide
categories:
- Astro
---
这里是文章正文。

你可以继续使用熟悉的 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 后台修改文章:

Sanity
Obsidian

可以重新同步回来继续编辑。

3. 支持博客字段映射#

不同博客结构不同。

插件不会固定字段。

例如:

Sanity:

title
slug
heroImage
categories
publishedAt

可以映射为:

title → title
slug.current → slug
heroImage → cover
categories → categories

适合:

  • 技术博客

  • 文档网站

  • 知识库

  • 产品站

4. 自动处理图片#

写文章时:

![[cover.png]]

或者:

![图片](image.png)

发布时插件会自动处理:

  • 上传图片

  • 转换为 Sanity Asset

  • 使用 CDN 地址

不需要进入 CMS 后台重新上传。

安装与配置教程#

准备工作#

开始之前,你需要:

  • Obsidian

  • Sanity 项目

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

如果没有 Sanity 项目:

前往:

https://www.sanity.io/

注册并创建项目。

第一步:安装 Obsidian 插件#

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

方法一:BRAT 安装(推荐)#

1. 安装 BRAT#

打开 Obsidian:

设置
→ 第三方插件
→ 浏览社区插件

Pasted image 20260801105839.png 搜索:

BRAT

Pasted image 20260801105921.png 安装并启用。

2. 添加插件仓库#

进入:

设置
→ BRAT
→ Add Beta Plugin

Pasted image 20260801110121.png 填写:

violet27chen/sanity-obsidian-plugin

Pasted image 20260801110300.png 等待安装完成。

3. 启用插件#

进入:

设置
→ 第三方插件

找到:

Sanity

Pasted image 20260801110539.png 开启即可。


方法二:手动安装#

进入你的 Obsidian Vault:

找到:

.obsidian/plugins

执行:

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

目录:

.obsidian
└── plugins
└── sanity-obsidian-plugin

重新打开 Obsidian:

设置
→ 第三方插件
→ 启用 Sanity

第二步:创建 Sanity API Token#

进入 Sanity:

Project
→ API
→ Tokens
→ Add API Token

权限选择:

Editor

不要选择:

Viewer

因为发布文章需要写入权限。

复制生成的 Token。

第三步:配置插件#

进入:

Obsidian
→ 设置
→ Sanity

Pasted image 20260801110445.png 填写:

API Token#

输入:

xxxxxxxxxxxxxxxx

Project ID#

进入:

Sanity Dashboard
→ Project Settings

复制:

Project ID

例如:

abc12345

Dataset#

一般:

production

Type Name#

填写你的文章类型。

例如:

post

如果 Schema:

{
name:"post"
}

这里填写:

post

第四步:配置文章字段#

假设博客文章结构:

post:
title
slug
body
cover
categories

插件设置:

标题:

title

正文:

body

文件名:

slug.current

额外字段:

cover:cover
categories:categories

Obsidian:

---
title: 我的文章
slug: my-post
cover: image.png
categories:
- 技术
---

同步到 Sanity:

{
"title":"我的文章",
"slug":{
"current":"my-post"
},
"categories":[
"技术"
]
}

第五步:发布第一篇文章#

创建 Markdown 文件:

我的第一篇博客.md

内容:

---
title: 我的第一篇博客
slug: first-blog
categories:
- 教程
---
这是文章正文。

插入图片:

![[cover.png]]

打开命令面板:

Ctrl + P

搜索:

Sanity

选择:

Publish to Sanity

完成后:

插件会自动:

  • 创建文章

  • 上传图片

  • 保存 sanity_id

  • 完成同步

第六步:博客展示文章#

完成同步后:

博客读取 Sanity 数据。

流程:

Obsidian
Sanity
Astro Blog

以后:

打开 Obsidian

写文章

点击发布

博客更新

常见问题#

发布失败:403 insufficientPermissions#

原因:

Token 权限不足。

解决:

重新创建 Token:

Role:
Editor

图片没有上传#

检查:

  • 图片路径是否正确

  • 是否使用 Markdown 图片格式

  • Token 是否有上传权限

找不到插件#

确认:

设置
→ 第三方插件
→ Sanity

已经开启。

为什么做这个项目?#

我一直认为:

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

Obsidian 擅长创作。

Sanity 擅长管理。

博客擅长展示。

把三个工具连接起来,可以打造一个属于自己的现代化内容系统。

后续计划#

未来会继续优化:

  • 自动同步

  • 草稿状态管理

  • 多文档类型支持

  • 更完善的博客发布流程

如果你正在使用:

  • Obsidian

  • Markdown

  • Sanity

  • Astro / Next.js 博客

欢迎体验这个项目。

项目地址:

violet27chen/sanity-obsidian-plugin

我改造了一个 Obsidian 插件:写完文章,一键同步到自己的博客
https://www.violet27chen.com/posts/obsidian-sanity-blog-sync-plugin/
作者
violet
发布于
2026-08-01
许可协议
CC BY-NC-SA 4.0