用户命令
用户命令即自定义命令,你可以定义一个命令要执行什么动作,以及执行这个动作时的参数是怎么样的。
一旦定义好了之后,你就可以把这些命令,绑定到某个快捷键上,从而可以实现:按下不同的快捷键,执行不同的自定义命令。
如何定义用户命令
你可以在扩展的 设置 > 用户命令 页面,找到可设置的输入框,此输入框的值是 JSON 格式的,是一个对象,每个自定义命令都是这个对象的属性。即其格式如下:
{
"$commandNameA": {"exec": "$actionName", "args": [$arg1, $arg2...]}
}
其中:
- exec 必填,类型为字符串, 用于指定要执行的动作
- args 选填,类型为元组(数组),用于配置,执行的动作的参数
举个例子:
{
"clipPageAsHTML": {
"exec": "startClip",
"args": [
{"config": {"saveFormat": "html"}}
]
},
"clipPageAsMarkdown": {
"exec": "startClip",
"args": [
{"config": {"saveFormat": "md"}}
]
},
}
上方这个例子:
- 定义了两个用户命令,一个取名为
clipPageAsHTML
, 一个取名为clipPageAsMarkdown
。 - 他们定义的动作都是
startClip
(开始裁剪) clipPageAsHTML
这个用户命令,配置了动作的参数: 存储格式为html
clipPageAsMarkdown
这个用户命令,配置了动作的参数:存储格式为md
可配置的动作
动作 | 参数 | 简介 |
---|---|---|
doNothing | 无 | 无动作,即啥也不做 |
startClip | [{config, badge}] | 开始裁剪当前网页,即进入裁剪流程 |
openLastClippingResult | 无 | 查看上次裁剪的结果 |
startClip 动作
最常用的动作,有一个参数,这个参数目前包含的属性有 config
,badge
和 extra
, 所有属性都是可选的,只有在需要时才提供。
config 属性
config
属性,用于指定本次裁剪的一些配置项,最常见的是存储格式(即: saveFormat
),所有可配置项,和毛线助手功能的 config 动作是一样的,详情请查看这里
目前有好几个地方都可以对裁剪的 config 做修改,比如: 设置页面,毛线助手,API 以及用户命令。其中,用户命令的优先级是最高的。
具体优先级如下:
用户命令
> 毛线助手
和 API
> 设置页面
例子:
{
"clipAsMarkdown": {
"exec": "startClip",
"args": [
{
"config": {"saveFormat: "md"}
}
]
}
}
badge 属性
badge
属性用于在扩展的图标(小剪刀)边上显示文字,可配置文字的颜色,和背景的颜色。
参数名字 | 是否必填 | 例子 | 默认值 | 简介 |
---|---|---|---|---|
text | 是 | “M” | 无 | 显示的文字,最多只显示三个字符 |
textColor | 否 | “white” 或者 “#ffffff” | “white” | 文字的颜色,可填写颜色名或颜色的十六进制 |
backgroundColor | 否 | “green” 或 “#00ff00” | “green” | 背景的颜色,可填写颜色名或颜色的十六进制 |
当指定了 badge
属性之后,裁剪过程中会显示文字,直到裁剪流程结束,才不显示。一般用 badge
来提示自己,当前执行的是哪些参数。
注: 基于 Chromium 开发的浏览器不支持修改文字的颜色。不管你提供的 textColor
的值是什么,都只会显示白色的文字。
例子:
{
"clipWithBadge": {
"exec": "startClip",
"args": [
{
"badge": {"text": "hi", "textColor": "white", "backgroundColor": "#000000"}
}
]
}
}
extra 属性
extra
属性用于传递一些非核心组件的参数,如:助手功能相关参数,你也可以用它传数据给第三方组件。
助手相关 extra.assistant
助手目前可指定 tagStatus
参数,用于决定那些助手动作的执行与否,关于 tagStatus
请看 这里
例子:
{
"clipWithBadge": {
"exec": "startClip",
"args": [{
"extra": {
"assistant": {"tagStatus": "tagA, tagB, !tagC"}
}
}]
}
}