外观
发布插件
发布插件可以让他人也能使用你的插件,私人使用请忽略这一步。
发布插件主要包含两个方面:
- 支持检索:方便其他用户发现这个插件
- 支持检查更新:当你对插件进行更新之后,方便其他用户发现并升级到最新版
支持检索
将项目传到 GitHub,然后给这个项目添加一个名为 bobplugin
的 topic
,这样大家就可以通过以下链接找到这个项目了。
https://github.com/topics/bobplugin
下方这个插件列表抓取了上述 GitHub 链接的数据,每日会定期自动更新,查阅起来比较方便。
Bob 第三方插件列表
插件列表要求
- 如果你的插件 repo 是基于某个 repo 进行 fork 的,将无法出现在插件列表。 这种情况请自行创建一个新的 repo,并在 README 说明是基于某个 repo 进行修改的。
- 插件列表会从插件仓库根目录查找
appcast.json
文件(文档后续会介绍该文件),用以获取插件最新版本和下载地址等信息。 - 如果找不到
appcast.json
文件,会从插件仓库 release 信息中找到最新的 release 获取插件最新版本和下载地址等信息。
支持检查更新
在介绍 info.json 的文章中可以看到描述插件信息里面有个字段是 appcast
,这个字段是一个 URL,用于请求获取插件的最新版本信息。
appcast 数据结构
appcast 接口请求应返回 json 格式数据,具体如下:
字段 | 类型 | 是否必须 | 说明 |
---|---|---|---|
identifier | string | ✅ | 插件的唯一标识符,需和插件 info.json 文件中的唯一标识符一致。 |
versions | array | ✅ | 版本信息数组,请倒序排列,新版本放前面。具体结构看 version object 。 |
version object 结构如下:
字段 | 类型 | 是否必须 | 说明 |
---|---|---|---|
version | string | ✅ | 版本号,请与对应插件包 info.json 中的信息一致。 |
desc | string | ✅ | 插件的更新内容。 |
sha256 | string | ✅ | 插件包 SHA256 哈希值,会和从 url 中下载的插件包进行校验。 |
url | string | ✅ | 插件包下载地址。 |
minBobVersion | string | - | 最低支持本插件的 Bob 版本,请与对应插件包 info.json 中的信息一致。 |
timestamp | number | - | 此版本发布的时间戳。类型是 number,单位毫秒。请尽量填写,插件列表会依据此数据将插件显示到近期更新分组中。 |
appcast.json
文件内容示例:
json
{
"identifier": "com.ripperhe.translate.test",
"versions": [
{
"version": "0.2.0",
"desc": "修复xxx问题",
"sha256": "00744ca8b8d84713425b7fc2073ca498aa7633faac537a1c1fa80d1264d3fc03",
"url": "https://raw.githubusercontent.com/ripperhe/test/master/bobplugin/test_0.2.0.bobplugin",
"minBobVersion": "0.5.0",
"timestamp": 1685108700989
},
{
"version": "0.1.0",
"desc": "初始版本",
"sha256": "5ec845ee2b60ac931ecac6f56c6a74ee16928ea4a8a4c98e2e85f09316b5ac1e",
"url": "https://raw.githubusercontent.com/ripperhe/test/master/bobplugin/test_0.1.0.bobplugin",
"minBobVersion": "0.5.0",
"timestamp": 1682948700000
}
]
}
SHA256
sha256
通过以下方式获取,打开 Mac 终端输入以下命令
sh
shasum -a 256 <这里换成插件包文件路径>
存放 appcast.json
以 GitHub 为例,建议将 appcast.json
文件放到插件仓库根目录。(方便插件列表抓取数据)
可通过以下链接获取 json 文件信息,将用户名和仓库名替换为自己的。
https://github.com/用户名/插件仓库名/raw/main/appcast.json
然后将链接填写到 info.json
中的 appcast
字段即可实现检查更新。