Skip to content

配置 info.json

info.json 文件是一个 json 文件,用于描述插件的元信息,由以下字段组成。

字段类型是否必须说明
identifierstring插件的唯一标识符,必须由数字、小写字母和 . 组成。
versionstring插件版本号,必须由数字、小写字母和 . 组成。
categorystring插件类别,值只可以是 translateocrtts,分别对应文本翻译、文本识别和语音合成。
namestring插件名称,无限制,建议别太长。
summarystring-插件描述信息。
iconstring-插件图标标识符。如果插件根目录有 icon.png 文件,则该文件将被用作插件图标,此时无需使用本字段。否则,本字段所指定的 ID 对应图片将作为插件图标,可以从 这个图标列表 中选择任意一个 ID 作为本字段的值。
iconsarray-插件图标数组,对象属性参考 icon object。配合 keyOption 可以实现插件切换图标,详情参考下面 keyOption 相关描述。 Bob 1.8.0+ 可用
authorstring-插件作者。
homepagestring-插件主页网址。
appcaststring-插件发布信息 URL。详情见 发布插件
minBobVersionstring-最低支持本插件的 Bob 版本号。所有没有特殊说明的 API 都是 0.5.0 开始支持,如果使用了明确标注从某个 Bob 版本开始才支持的 API,请将本字段设置为已使用的 API 的最高版本号,appcast 内 version 对象的 minBobVersion 也需要同步更新。
optionsarray-插件选项数组,该字段用于提供一些选项供用户选择或填写,详情见 option object

icon object Bob 1.8.0+ 可用

字段类型是否必须说明
identifierstring图标唯一标识符。
typestring图标类型。值可以为以下类型:
builtIn - Bob 内置图标
file - 插件提供图标文件
builtInIdstringbuiltIn 类型必须赋值builtIn 类型图标 ID,可以从 这个图标列表 中选择任意一个 ID 作为本字段的值。
filePathstringfile 类型必须赋值file 类型图标文件路径。相对于插件根目录的路径,例如插件根目录存在一个 test.png 文件,则该字段赋值为 test.png 即可。

option object

字段类型是否必须说明
identifierstring选项唯一标识符,取值时使用。
typestring选项类型。值可以为以下类型:
text - 输入框类型,用户自行文本
menu - 菜单类型,提供固定的菜单选项
titlestring选项名称,用于展示。
defaultValuestring-默认值。
textConfigtext config object-输入框类型选项的详细设置。 Bob 1.8.0+ 可用
menuValuesarraytype 为 menu 时必须有菜单选项数组,详情见 menu object
descstring-用于详细描述这个选项的作用。
isKeyOptionbool-是否为关键选项。目前关键选项可用于切换插件默认图标和名称,只有 type 为 menu 类型的选项可作为关键选项。 Bob 1.8.0+ 可用

text config object Bob 1.8.0+ 可用

字段类型是否必须说明
typestring文本框类型。值可以为以下类型:
secure - 安全类型输入框,默认自动隐藏用户输入的内容
visible - 可视输入框,可直接查看输入的文本
heightnumber-输入框高度。默认为 21,可以根据大概行数来设置,比如两行可以考虑设置为 40。
placeholderTextstring-输入框占位文本。跟 defaultValue 不同,此文本起提示性作用,在未输入内容时展示,不影响输入框实际内容。
keyWordsarray-关键字数组,元素为 string 类型。此值仅 visible 类型输入框有效,用户输入关键字时将高亮展示。
字段类型是否必须说明
titlestring菜单选项名称,用于展示。
valuestring当前菜单被选中时的值。
defaultPluginIconIdentifierstring-选中本选项时插件的默认图标 identifier,需要是 icons 数组中的值。此设置仅对 keyOption 有效。 Bob 1.8.0+ 可用
defaultPluginNamestring-选中本选项时插件的默认名称。此设置仅对 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://raw.githubusercontent.com/xxxx/xxxx/master/appcast.json",
    "minBobVersion": "0.5.0",
    "options": [
        {
            "identifier": "option1",
            "type": "text",
            "title": "测试输入框"
        },
        {
            "identifier": "option2",
            "type": "menu",
            "title": "测试菜单",
            "defaultValue": "1",
            "menuValues": [
                {
                    "title": "菜单1",
                    "value": "1"
                },
                {
                    "title": "菜单2",
                    "value": "2"
                }
            ]
        }
    ]
}
{
    "identifier": "com.ripperhe.translate.test",
    "version": "0.1.0",
    "category": "translate",
    "name": "测试插件",
    "summary": "这是一个用于测试的插件。",
    "icon": "001",
    "author": "ripperhe",
    "homepage": "https://github.com",
    "appcast": "https://raw.githubusercontent.com/xxxx/xxxx/master/appcast.json",
    "minBobVersion": "0.5.0",
    "options": [
        {
            "identifier": "option1",
            "type": "text",
            "title": "测试输入框"
        },
        {
            "identifier": "option2",
            "type": "menu",
            "title": "测试菜单",
            "defaultValue": "1",
            "menuValues": [
                {
                    "title": "菜单1",
                    "value": "1"
                },
                {
                    "title": "菜单2",
                    "value": "2"
                }
            ]
        }
    ]
}

由于以上 json 设置了 options 字段,所以使用该插件时可以看到设置项,如下所示:

plugin-option-1

menu 类型的展开效果如下:

plugin-option-2

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