配置 info.json 
info.json 文件是一个 json 文件,用于描述插件的元信息,由以下字段组成。
| 字段 | 类型 | 是否必须 | 说明 | 
|---|---|---|---|
| identifier | string | ✅ | 插件的唯一标识符,必须由数字、小写字母和 . 组成。 | 
| version | string | ✅ | 插件版本号,必须由数字、小写字母和 . 组成。 | 
| category | string | ✅ | 插件类别,值只可以是 translate、ocr 和 tts,分别对应文本翻译、文本识别和语音合成。 | 
| name | string | ✅ | 插件名称,无限制,建议别太长。 | 
| summary | string | - | 插件描述信息。 | 
| icon | string | - | 插件图标标识符。如果插件根目录有 icon.png 文件,则该文件将被用作插件图标,此时无需使用本字段。否则,本字段所指定的 ID 对应图片将作为插件图标,可以从 这个图标列表 中选择任意一个 ID 作为本字段的值。 | 
| icons | array | - | 插件图标数组,对象属性参考 icon object。配合 keyOption 可以实现插件切换图标,详情参考下面 keyOption 相关描述。 Bob 1.8.0+ 可用 | 
| author | string | - | 插件作者。 | 
| homepage | string | - | 插件主页网址。 | 
| appcast | string | - | 插件发布信息 URL。详情见 发布插件。 | 
| minBobVersion | string | - | 最低支持本插件的 Bob 版本号。所有没有特殊说明的 API 都是 0.5.0 开始支持。如果使用了明确标注从某个 Bob 版本开始才支持的 API,请将本字段设置为已使用的 API 的最高版本号,appcast 内 version 对象的 minBobVersion 也需要同步更新。为了便于开发和兼容性考虑,建议使用你在开发调试过程中所使用的 Bob 版本。 | 
| options | array | - | 插件选项数组,该字段用于提供一些选项供用户选择或填写,详情见 option object。 | 
icon object Bob 1.8.0+ 可用 
| 字段 | 类型 | 是否必须 | 说明 | 
|---|---|---|---|
| identifier | string | ✅ | 图标唯一标识符。 | 
| type | string | ✅ | 图标类型。值可以为以下类型:builtIn - Bob 内置图标file - 插件提供图标文件 | 
| builtInId | string | builtIn 类型必须赋值 | builtIn 类型图标 ID,可以从 这个图标列表 中选择任意一个 ID 作为本字段的值。 | 
| filePath | string | file 类型必须赋值 | file 类型图标文件路径。相对于插件根目录的路径,例如插件根目录存在一个 test.png 文件,则该字段赋值为 test.png 即可。 | 
option object 
| 字段 | 类型 | 是否必须 | 说明 | 
|---|---|---|---|
| identifier | string | ✅ | 选项唯一标识符,取值时使用。 | 
| type | string | ✅ | 选项类型。值可以为以下类型:text - 输入框类型,用户自行文本menu - 菜单类型,提供固定的菜单选项 | 
| title | string | ✅ | 选项名称,用于展示。 | 
| defaultValue | string | - | 默认值。 | 
| textConfig | text config object | - | 输入框类型选项的详细设置。 Bob 1.8.0+ 可用 | 
| menuValues | array | type 为 menu 时必须有 | 菜单选项数组,详情见 menu object。 | 
| desc | string | - | 用于详细描述这个选项的作用。 | 
| isKeyOption | bool | - | 是否为关键选项。目前关键选项可用于切换插件默认图标和名称,只有 type 为 menu 类型的选项可作为关键选项。 Bob 1.8.0+ 可用 | 
text config object Bob 1.8.0+ 可用 
| 字段 | 类型 | 是否必须 | 说明 | 
|---|---|---|---|
| type | string | ✅ | 文本框类型。值可以为以下类型:secure - 安全类型输入框,默认自动隐藏用户输入的内容visible - 可视输入框,可直接查看输入的文本 | 
| height | number | - | 输入框高度。默认为 21,可以根据大概行数来设置,比如两行可以考虑设置为 40。 | 
| placeholderText | string | - | 输入框占位文本。跟 defaultValue 不同,此文本起提示性作用,在未输入内容时展示,不影响输入框实际内容。 | 
| keyWords | array | - | 关键字数组,元素为 string 类型。此值仅 visible 类型输入框有效,用户输入关键字时将高亮展示。 | 
menu object 
| 字段 | 类型 | 是否必须 | 说明 | 
|---|---|---|---|
| title | string | ✅ | 菜单选项名称,用于展示。 | 
| value | string | ✅ | 当前菜单被选中时的值。 | 
| defaultPluginIconIdentifier | string | - | 选中本选项时插件的默认图标 identifier,需要是 icons 数组中的值。此设置仅对 keyOption 有效。 Bob 1.8.0+ 可用 | 
| defaultPluginName | string | - | 选中本选项时插件的默认名称。此设置仅对 keyOption 有效。 Bob 1.8.0+ 可用 | 
示例 
json
{
    "identifier": "com.ripperhe.translate.test",
    "version": "0.1.0",
    "category": "translate",
    "name": "测试插件",
    "summary": "这是一个用于测试的插件。",
    "icon": "001",
    "author": "ripperhe",
    "homepage": "https://github.com",
    "appcast": "https://github.com/xxx/xxrepo/raw/main/appcast.json",
    "minBobVersion": "0.5.0",
    "options": [
        {
            "identifier": "option1",
            "type": "text",
            "title": "测试输入框 - 密文"
        },
        {
            "identifier": "option2",
            "type": "text",
            "title": "测试输入框 - 明文 & 自定义高度",
            "textConfig": {
                "type": "visible",
                "height": 100,
                "placeholderText": "这是占位文本"
            }
        },
        {
            "identifier": "option3",
            "type": "menu",
            "title": "测试菜单",
            "defaultValue": "1",
            "menuValues": [
                {
                    "title": "菜单选项 1",
                    "value": "1"
                },
                {
                    "title": "菜单选项 2",
                    "value": "2"
                }
            ]
        }
    ]
}由于以上 json 设置了 options 字段,所以使用该插件时可以看到设置项,如下所示:

menu 类型的展开效果如下:

用户在这里设置之后,插件内部可以根据相应 option object 的 identifier 取值,具体请查看 $option 相关文章。

