如上一章hello world的例子所示,plugin.json文件可以让你的插件与uTools无缝的结合在一起,下面我们列出了所有可能的配置项及注释供你参考:
{
"pluginName": "插件名称",
"version": "0.0.1",
"description": "插件描述",
// 在uTools对应的位置显示
"author": "开发者",
// 如果配置了此项,用户点击`开发者`时,将在浏览器中打开此页面
"homepage": "https://u.tools",
// 入口文件,为空表示模板插件
"main": "index.html",
// 这是一个关键文件,你可以在此文件内调用uTools 、nodejs、electron提供的api
"preload":"preload.js",
// 此插件的图标,这是必须存在的,否则打包后将无法安装
"logo": "logo.png",
// 插件支持的平台(默认为全平台支持)
"platform": ["win32", "darwin", "linux"],
// 在开发模式下,可使用development配置替换 main、preload、logo 的值,在打包时,此字段会被删除
"development": {
"main": "",
"preload": "",
"logo": "",
// 可单独指定打包目录(默认为plugin.json所在目录)
"buildPath": ""
},
// 插件设置 (可选)
"pluginSetting":{
// 插件是否允许多开(默认不允许),多开方式:分离插件后,再次创建
"single": true,
// 插件高度(可动态修改,但用户不能调整高度)
"height": 0
},
/*
* features 描述了当uTools主输入框内容产生变化时,此插件是否显示在搜索列表中
* 一个插件可以有多个功能,一个功能可以提供多个命令供用户搜索
*/
"features": [
{
// 插件提供的某个功能(必须)
"code": "uuid",
// 对此功能的说明,在搜索列表中出现
"explain": "随机唯一值",
// 功能图标, 相对路径 支持png、jpg、svg (可选)
"icon": "res/xxxx.png",
// 功能适配平台 ["win32", "darwin", "linux"] (可选)
"platform": ["win32", "darwin", "linux"],
"cmds":[
// cmds 可以是简单的字符串, 搜索进入
"uTools", "中文",
// cmds 也可以是一个对象,匹配场景,通过匹配过滤
{
// 类型,可能的值(img, files, regex, over)
"type": "img",
// 文字说明,在搜索列表中出现(必须)
"label": "图片匹配"
},
// files 实例
{
"type": "files",
"label": "文件匹配",
// 支持file或directory (可选)
"fileType": "file",
// 文件名称正则匹配 (可选)
"match": "/xxx/",
// 数量限制(不少于) (可选)
"minNum": 1,
// 数量限制(不多于) (可选)
"maxNum": 1
},
// regex 实例
{
"type": "regex",
"label": "文本正则匹配",
// 正则表达式字符串
"match":"/xxx/i",
// 长度限制(主输入框中的字符不少于) (可选)
"minLength": 1,
// 长度限制(不多于) (可选)
"maxLength": 1
},
// over 实例(当uTools主输入框中的关键字无任何匹配项时出现)
{
"type": "over",
"label": "无匹配时",
// 排除的正则 (可选)
"exclude":"/xxx/i",
// 长度限制(主输入框中的字符不少于) (可选)
"minLength": 1,
// 长度限制(不多于) (可选)
"maxLength": 1
},
// window 实例(根据呼出uTools前的活动窗口匹配)
// ps: 可使用uTools`窗口信息`关键字查看窗口信息
{
"type": "window",
"label": "窗口动作",
"match": {
// 应用
"app": ["xxx.app", "xxx.exe"],
// 匹配窗口标题的正则 (可选)
"title": "/xxxx/",
// 窗口类 Windows专有 (可选)
"class": ["xxx"]
}
}
]
}
]
}