满心欢喜准备去发布插件,照着以前的经验,跑到 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 识别插件的核心配置文件。这个文件要是填错了,后面所有步骤都白搭。
一个典型的长这样:
123456789{ "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 是最安全的选择。实在拿不准,可以去 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,进入设置 → 第三方插件,关闭安全模式,找到你的插件并启用。
测试的时候至少要过这几项:
本地测试没问题了,把代码推到 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 插件,用来一键发公众号
相关链接

夜雨聆风