Appearance
plugin.json 配置
plugin.json 文件是插件应用的配置文件,它是最重要的一个文件,用来定义这个插件应用将如何与 ZTools 集成。 每当你创建一个插件应用时,都需要从创建一个 plugin.json 文件开始。
配置文件格式
plugin.json 文件是一个标准的 JSON 文件,它的结构如下:
json
{
"name": "example",
"description": "示例",
"version": "1.0.0",
"main": "index.html",
"logo": "logo.png",
"preload": "preload.js",
"features": [
{
"code": "hello",
"explain": "hello world",
"cmds": ["hello", "你好"]
}
]
}基础字段说明
name
- 类型:
string - 必填:是
插件应用名称
description
- 类型:
string - 必填:否
插件应用描述
version
- 类型:
string - 必填:否
插件应用版本
main
- 类型:
string - 必填:是
插件入口,可以是一个相对于 plugin.json 的相对路径的 .html 文件,或者是一个在线地址
logo
- 类型:
string - 必填:是
插件应用 Logo,必须为 png 或 jpg 文件
preload
- 类型:
string - 必填:是
预加载 js 文件,这是一个关键文件,你可以在此文件内调用 nodejs、 electron 提供的 api。 查看更多关于 preload.js
开发模式字段说明
development
- 类型:
object - 必填:否
开发模式下的配置,对象的同名字段会覆盖基础配置字段。
development.main
- 类型:
string - 必填:否
开发模式下,插件应用的入口文件,与基础配置字段 main 字段相同
插件应用功能字段说明
features
- 类型:
Array<Feature> - 必填:否
插件功能列表,定义插件支持的功能及其触发方式。
feature.code
- 类型:
string - 说明:功能唯一标识,用于区分不同功能。
feature.explain
- 类型:
string - 说明:功能说明,显示在搜索结果中。
feature.cmds
- 类型:
Array<string | RegexCmd | OverCmd | ImgCmd | FilesCmd> - 说明:触发指令列表。可以是简单的字符串,也可以是匹配对象(正则、全局、图片、文件等)。
feature.platform
- 类型:
Array<'win32' | 'darwin' | 'linux'> - 必填:否
- 说明:支持的平台。如果不填,默认支持所有平台。
指令类型详解
文本指令 (String)
最简单的触发方式,当用户输入完全匹配该文本时触发。
json
{
"features": [
{
"code": "hello",
"explain": "打招呼",
"cmds": ["hello", "你好"]
}
]
}正则表达式指令 (RegexCmd)
使用正则表达式匹配用户输入。
json
{
"features": [
{
"code": "color",
"explain": "颜色预览",
"cmds": [
{
"type": "regex",
"label": "颜色预览",
"match": "/^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$/i",
"minLength": 4
}
]
}
]
}type: 固定为"regex"label: 匹配成功后显示的名称match: 正则表达式字符串 (例如"/^abc/i")minLength: 触发匹配的最小字符长度
全局匹配指令 (OverCmd)
匹配任意文本,通常用于需要处理所有输入的场景(如翻译、搜索插件)。
json
{
"features": [
{
"code": "translate",
"explain": "翻译",
"cmds": [
{
"type": "over",
"label": "翻译",
"exclude": "/^exclude/i",
"minLength": 1,
"maxLength": 1000
}
]
}
]
}type: 固定为"over"label: 显示的名称exclude: (可选) 排除匹配的正则表达式字符串minLength: (可选) 最小字符数maxLength: (可选) 最大字符数 (默认 10000)
图片匹配指令 (ImgCmd)
当用户粘贴图片到 ZTools 时触发,用于处理图片的插件(如图片压缩、格式转换、OCR 识别等)。
json
{
"features": [
{
"code": "image-process",
"explain": "图片处理",
"cmds": [
{
"type": "img",
"label": "图片处理"
}
]
}
]
}type: 固定为"img"label: 显示的名称
使用场景:
- 图片压缩
- 图片格式转换
- OCR 文字识别
- 图片编辑
- 图片上传
文件匹配指令 (FilesCmd)
当用户粘贴文件或文件夹到 ZTools 时触发,支持多种过滤条件来精确匹配文件。
json
{
"features": [
{
"code": "file-process",
"explain": "文件处理",
"cmds": [
{
"type": "files",
"label": "批量重命名",
"fileType": "file",
"extensions": ["txt", "md", "json"],
"match": "/^test/i",
"minLength": 1,
"maxLength": 100
}
]
}
]
}type: 固定为"files"label: 显示的名称fileType: (可选) 文件类型,"file"表示只匹配文件,"directory"表示只匹配文件夹。不指定则文件和文件夹都匹配extensions: (可选) 文件扩展名数组,只对文件有效(不检查文件夹)。例如["jpg", "png", "gif"]match: (可选) 匹配文件(夹)名称的正则表达式字符串。例如"/^test/i"表示匹配以 "test" 开头的文件名(不区分大小写)minLength: (可选) 最少文件数,默认 1maxLength: (可选) 最多文件数,默认 10000
匹配规则:
- 首先检查文件数量是否在
minLength和maxLength范围内 - 然后检查每个文件是否满足以下条件(如果指定):
- 文件类型(
fileType) - 文件扩展名(
extensions) - 文件名正则匹配(
match)
- 文件类型(
使用场景:
- 批量文件重命名
- 文件格式转换
- 文件压缩打包
- 文件批量上传
- 代码文件批量处理