乐于分享
好东西不私藏

Obsidian插件发布踩坑记:旧流程废弃,新流程手把手走一遍

Obsidian插件发布踩坑记:旧流程废弃,新流程手把手走一遍

满心欢喜准备去发布插件,照着以前的经验,跑到 GitHub 上准备提交 PR。

结果发现——Obsidian 官方把发布流程改了。

以前是给 obsidianmd/obsidian-releases 仓库提 PR,现在他们自己做了个提交页面,在 community.obsidian.md 上操作就行。

网上搜到的教程大部分还在讲旧流程,照着走只会绕弯路。

这篇是我把 Obsidian to WeChat 提交到社区市场过程中,踩完坑后整理的完整指南。

先搞清楚三件事,再动手

发布一个插件,核心就三样东西:

GitHub 仓库,用来放源码、README、LICENSE 和 manifest.json。

GitHub Release,用来提供 Obsidian 实际下载安装的文件。

Obsidian 社区目录,提交审核的地方,通过了用户就能搜到你的插件。

整个流程串起来就是:先把仓库和文件准备好,然后创建 Release,最后到社区目录提交审核。

发布前你需要两个账号:

GitHub 账号用来托管代码和 ReleaseObsidian 账号用来登录社区目录提交插件。都没什么门槛,注册就行。

仓库必须是公开的,根目录下至少要有 README.md、LICENSE 和 manifest.json。缺了哪个,审核的时候都会被拦回来。

到这里,大框架就清楚了。接下来看细节。

这个文件填错,全白干

manifest.json 是 Obsidian 识别插件的核心配置文件。这个文件要是填错了,后面所有步骤都白搭。

一个典型的长这样:

json123456789{  "id": "markdown-wechat-publisher",  "name": "Markdown WeChat Publisher",  "version": "0.1.5",  "minAppVersion": "1.11.7",  "description": "Preview, style, copy, and publish Markdown notes to multiple WeChat Official Accounts.",  "author": "Ancle",  "isDesktopOnly": false}

里面有几个字段需要特别注意:

id 是插件的唯一标识

发布后不要随便改,它会决定插件的安装目录和社区页面地址。

比如 id 是 markdown-wechat-publisher,插件的社区页面就是https://community.obsidian.md/plugins/markdown-wechat-publisher 

还有两点:id 必须全局唯一,不能和已有插件重复;id 不能包含 "obsidian" 这个词。

version 必须符合 x.y.z 格式

比如 1.0.0、0.1.5、2.3.1。不要写成 v0.1.5,也不要写成 0.1 或者 2026.06。

version 还必须和 GitHub Release 的 tag 完全一致。

这个是发布过程中最容易踩的坑。如果 manifest.json 里写的是 0.1.5,Release 的 tag 也必须是 0.1.5,多一个字母都不行。

minAppVersion

填你实际测试过的最低 Obsidian 版本就行,不要随便写一个很低的版本号。

搞定这个文件,后面会顺利很多。

README 和 LICENSE,别偷懒

README.md 是用户了解你插件的第一窗口。社区目录会直接展示它给用户。

至少要写清楚这几件事:插件是干什么的、核心功能有哪些、怎么安装、怎么用、会不会读取用户数据、遇到问题去哪反馈。

如果你的插件面向中文用户,可以额外准备一份 README.zh-CN.md。但 README.md 本身建议保留英文,方便审核和国际用户理解。

LICENSE 也必须有。没有 License,别人用你的代码就没有明确授权,边界不清楚。常见的选择:

• 
MIT,最宽松,使用简单,大多数插件选这个
• 
Apache-2.0,宽松,多了专利授权条款
• 
GPL-3.0,要求衍生作品也开源
• 
AGPL-3.0,对网络服务场景约束更强

如果不确定选哪个,MIT 是最安全的选择。实在拿不准,可以去 choosealicense.com 看看。

这两份文件不复杂,但很多人会忽略,审核的时候被退回来才补。

本地跑通了再动手发

图片提示词: Obsidian设置界面截图风格,第三方插件列表中有一个插件被圈出来并标记为"已启用",旁边有绿色勾号,手绘日记风格,16:9

文件都准备好了,先别急着提交。我强烈建议在本地 Obsidian 里完整跑一遍。

先用 npm install && npm run build 把插件构建出来。

构建完检查根目录下有没有生成 main.js,如果有样式的话还应该有 styles.css。manifest.json 一般本来就在根目录。

然后把 main.js、manifest.json 和 styles.css 这三个文件复制到你 vault 的 .obsidian/plugins/插件id/ 目录下。

比如:

你的插件 id 是 markdown-wechat-publisher,就放到 .obsidian/plugins/markdown-wechat-publisher/ 下面。

接着打开 Obsidian,进入设置 → 第三方插件,关闭安全模式,找到你的插件并启用。

测试的时候至少要过这几项:

• 
插件能不能正常加载
• 
命令面板里能不能看到你的命令
• 
设置页能不能打开
• 
核心功能是否正常
• 
重启 Obsidian 后配置还在不在

本地测试没问题了,把代码推到 GitHub 默认分支。

社区目录会读取默认分支 HEAD 上的 manifest.json,所以推送前确认这个文件是最新的。

到这里,最麻烦的部分其实已经过去了。

最关键的一步:Release 别搞砸

接下来是最容易出错的一步。

进入 GitHub 仓库的 Releases 页面,点击 "Draft a new release"。

Tag 填写版本号,比如 0.1.5。 这个 tag 必须和 manifest.json 里的 version 完全一致。

Release name 随便写,比如 "0.1.5" 或者 "Plugin Name 0.1.5" 都行,Obsidian 不依赖这个名字。

然后上传附件。这里是最容易漏的一步:你需要单独上传 main.js、manifest.json 和 styles.css(如果插件有样式的话)。

GitHub 会自动生成 Source code 压缩包,但那个不够用。Obsidian 安装插件时,只会去找你手动上传的这几个文件。

确认三件事:tag 和 version 一致,附件里有 main.js 和 manifest.json,有样式的话 styles.css 也传了。然后点发布。

这一步搞定了,后面就是提交审核。

提交审核,然后等

打开 community.obsidian.md(https://community.obsidian.md/),用 Obsidian 账号登录。

在个人资料里绑定 GitHub 账号,然后进入 Plugins 页面,点击 "New plugin",填写你的 GitHub 仓库地址。

阅读并同意开发者政策,确认你会继续维护插件,提交。

之后就是等待自动审核。审核会检查一堆东西:

仓库能不能访问、README 和 LICENSE 有没有、manifest.json 字段合不合规、id 唯不唯一、Release 存不存在、附件对不对、代码有没有用不该用的 API。

如果审核通过,恭喜你,插件很快就能在社区市场搜到了。

直接点击 add,会打开本地 obsidian,然后直接跳转插件市场。

如果审核不通过,会给你反馈。这时候不要只改代码就完事。

正确的流程是:修改代码 → 升级版本号(比如从 0.1.5 升到 0.1.6)→ 重新构建 → 推送到 GitHub → 创建新版本的 Release → 回到社区目录继续处理审核。

每次修改审核反馈都需要发布一个新版本。 这个规则要记住,不然会多走弯路。

三个最常见的坑

发布过程中,我遇到和看到最多的问题就这三个:

网页上能看到插件,Obsidian 里搜不到。

刚发布后会有同步延迟。先确认插件页面已经公开、Obsidian 版本满足 minAppVersion、Release 附件能正常下载。

都没问题的话,等一阵子再搜,通常是缓存还没刷新。

Release 创建了,但提示找不到文件。

几乎都是因为只依赖了 GitHub 自动生成的源码压缩包。

你需要手动上传 main.js 和 manifest.json,有样式的话还要传 styles.css。

tag 能不能写成 v1.0.0?

不能。manifest.json 里 version 是 1.0.0,tag 就必须是 1.0.0。不要加 "v" 前缀,格式必须完全一致。

写在最后

插件上架后,后续更新不需要重新提交。改代码 → 升级 version → 构建 → 推送 → 创建新 Release,就行了。用户在 Obsidian 里会自动收到更新提示。

整个发布流程,核心就是三件事:manifest.json 的 version 要和 Release tag 完全一致,Release 里要单独上传构建产物,提交审核前本地测试跑通。

发布成功的那一刻,打开 Obsidian 插件市场,搜索自己的插件名字,看到它安安静静地出现在列表里,还是很有成就感的。

如果你也在写 Obsidian 插件,希望这篇能帮你少踩几个坑。

对了,如果你用 Obsidian 写公众号,可以试试我刚发的这个插件 Obsidian to WeChat——写完文章一键发到草稿箱,排版时间从 40 分钟缩短到 30 秒。详细介绍看这篇:我让 Claude 写了一个 Obsidian 插件,用来一键发公众号

相关链接

• 官方文档:
https://docs.obsidian.md/Plugins/Releasing/Submit+your+plugin
• 
社区插件目录:
https://community.obsidian.md/plugins

‍‍


感谢看到最后,本篇结束~
如果我的内容对你有所帮助,感谢点赞、关注支持一下🙏
⬇️ 关注我,获取最新 AI 干货笔记和实操,少走弯路、多出成果!
‍

相关学习资料