文本窗口

概述

用于显示或编辑较长的文本内容。


有两种工作方式:

  • 不等待:显示窗口后继续运行后续步骤,不等待窗口关闭。
  • 等待关闭:等待窗口关闭后再执行后续步骤。等待关闭时,可以显示附加的操作按钮并返回用户选择的按钮以及修过后的文字。

image.png


窗口操作

右键菜单

image.png

  • 基础功能:撤销、重做、剪切、复制、粘贴
  • 恢复初始内容:恢复显示文本开始设置的内容;
  • 高亮语法:选择使用高亮类型;
  • 置顶:置顶或取消置顶窗口。


快捷键

  • Ctrl+Z 撤销编辑步骤
  • Ctrl+Y重做最后撤销的编辑步骤
  • Ctrl+C、Ctrl+X、Ctrl+V 常规复制粘贴操作
  • Ctrl+F 查找/替换


参数

image.png


输入

【等待方式】是否等待窗口关闭再执行后续步骤。

【文本内容】要显示的文字内容。

【窗口标题】窗口标题文字,可用于提示用户显示的什么内容,或提示用户选择下一步的操作。

【后续操作选项】在工具栏显示附加的操作按钮。每行一个,详细请参见下面章节。

【窗口位置】窗口的显示位置。

【唯一性标识】如果设置了此值,则在显示窗口前先关闭之前弹出的使用此标使的窗口。用于多次使用某个动作(如OCR或翻译动作)时自动关闭前一次动作的结果窗口。此标识为全局唯一。

【字体大小】初始的文字大小。默认为14。

【字体名称】仅在需要时设置。多个字体时,使用英文逗号分隔字体名。

【语法高亮】设置使用的语法高亮类型。

【置顶显示】窗口显示保持在顶层。

【失去焦点自动关闭】失去焦点后自动关闭窗口,适合用于仅显示内容不需要编辑的情况。

【显示行号】是否在窗口左侧显示行号数字。


输出

选择的项】用户选择的附加操作按钮。如果直接点击X关闭窗口,则返回空值。

【结果文本】返回显示框内的最终结果文本。


补充说明

【窗口位置】的"自定义位置"选项参数格式为:left,top,right,bottom。参数含义见下图:

(务必先选择屏幕位置选项为“自定义位置”后再填写4个尺寸参数)

image.png


扩展操作按钮的定义

基本说明:

  • 每行定义一个操作按钮;
  • 使用"显示内容|值或处理方式"的格式定义。
  • 显示内容部分,使用 [图标]标题文字(ToolTip文字) 的格式定义外观。
    • 示例: [fa:Solid_Cog:#339900]转大写(将选中的文字转换为大写) 
      image.png
    • fa:为开始标记;
    • 第二部分为图标。图标名称可以在图标选择窗口中查看(为动作设置图标的窗口)
      image.png
    • 第三部分为图标颜色,使用 #RRGGBB 格式。
  • 支持创建菜单。
    • 一个主菜单按钮下可以跟随多个子菜单项。
    • 主菜单按钮按钮文字定义:[+][fa:Solid_Pen:#FF0000]标题文字(提示文字) 显示内容的图标和提示文字是可选的。
    • 子菜单文字:[-][fa:Solid_Pen:#FF0000]菜单标题文字(菜单提示文字)
  • 使用////开始将改行作为注释使用或用于使其不生效。


默认使用竖线“|”作为显示内容和值内容的分隔符。如果需要更改分隔符,可以在第一行使用“ |=新分隔符 ”的方法进行修改。


按钮的行为定义

扩展按钮定义的第二部分定义按钮的行为。

按钮行为分为两个方式:

  • 关闭窗口并从“选择的项”输出参数中返回一个值。定义方法:直接写要返回的值即可。
    • 例如:按钮定义“使用百度翻译|baidu”,点击此按钮将关闭窗口并在“选择的项”中输出“baidu”。
  • 执行某个文本处理操作。定义方法:call:执行功能定义  


定义文本处理功能

基本格式位call:后面加由$符号分隔的4个部分:


call:第1部分$第2部分$第3部分$第4部分


第1部分

定义要处理全部文本还是选中部分的文本。可选值:

  • aall :文本框的全部内容
  • sselection : 文本框选中部分的内容
  • nnone: 不需要输入文本
  • auto: 如果选中了内容,则使用选中部分,否则使用全部文本内容。(1.5.20版本支持)


第2部分

文本处理后的结果的操作方式。可选值:

  • rareplaceall : 替换文本框的全部内容;
  • rsreplaceselection: 替换文本框选中部分的内容;
  • ccopy: 复制到剪贴板;
  • nnone: 不处理返回内容;
  • rauto: 根据来源文本是选中部分还是全部内容自动替换选中部分或替换全部内容;(1.5.20版本支持)
  • insertafter ia:在选中内容的后面插入结果。(1.6.2版本支持)


在操作方式为“替换选中部分”(rs/replaceselection)或“在选中部分的后面插入”(ia/insertafter) 或 “替换文本框的全部内容”(ra/replaceall) 时,支持移动光标到插入内容的某个位置。使用格式为:操作方式字符-从插入内容结尾开始向前移动的字符数操作方式字符+从插入内容开始偏移的字符数。如“rs-1”表示替换选中的内容后,光标位置设置为从替换内容的结尾向前移动一个字符。(1.6.2版本支持)




第3部分

定义操作功能的类型。可选值:

  • sp: 子程序(SubProgram)。
  • ininternal: 内置的文本处理功能。
  • cloud: 在线文本处理服务。(后期支持)
  • url:提供通用接口的第三方文本处理服务网址。(后期支持)


第4部分

操作功能的资源名称或网址以及参数。

格式为: 子程序名称在线服务功能key第三方服务网址?参数1=值1&参数2=值2...

如果没有参数,则?和后面的部分可以省略。参数值需要经过URL编码处理。


示例动作:


文本处理子程序

调用示例:

  • 不带参数的调用:call:s$rs$sp$子程序名
  • 带有参数的调用:call:s$rs$sp$子程序名?head=head_value&end=end_value&param3=value3



子程序需要符合如下的规范:

  • 需要有2个输入参数变量和1个输出参数变量:
    • 【Input】文本类型变量,用于接收待处理的文本。
    • 【params】文本或词典类型变量,用于接收文本处理的附加参数。如果此变量为文本类型,参数内容将直接以原始格式传递到变量中(如:head=head_value&end=end_value&param3=value3);如果此变量为词典类型,Quicker会把参数自动转换为词典(在表达式中可以使用 $={params}["参数名"] 的方式取用参数)。
    • 【Output】文本类型的输出变量,用于将处理结果返回。当output内容为空时,不会替换编辑窗口中的选中内容(避免用户取消操作时内容被清空)。如果希望清空内容,请在output中返回*NULL*。


image.png


参考子程序:https://getquicker.net/SubProgram?id=58926ef7-0908-46d6-17c0-08d7dec8856a


内置的文本处理功能

调用示例:

  • call:s$rs$in$toUpper
  • call:a$ra$internal$toLower


目前支持的内部处理功能:

  • toUpper 英文转换为大写
  • toLower 英文转换为小写
  • reverse 反顺文本
  • trimStart 去除前面的空白
  • trimEnd 去除后面的空白
  • trim 去除前后的空白
  • urlEncode URL编码(utf8)
  • urlDecode URL解码 (utf8)
  • htmlEncode Html编码
  • htmlDecode Html解码
  • intercappedToSentence 组合词拆分成句子(thisIsChina=>this Is China)
  • base64Encode Base64编码
  • base64Decode Base64解码
  • removeEmptyLine 去除空行
  • mergeEmptyLine 合并多个空行
  • sortLinesAsc 排序多行A-Z
  • sortLinesDesc 排序多行Z-A(字母倒序)
  • reverseLines 翻转多行顺序
  • toTitleCase 首字母大写
  • formatJson 格式化JSON
  • md5 计算MD5哈希
  • sha256Hash 计算SHA256哈希
  • sha1Hash 计算SHA1哈希
  • escapeJson 转义文本为合法Json值
  • DecodeUnicode 解码Unicode字串(\uXXXX转普通字符)
  • toCnNum 金额数字转换为大写
  • cn2num 中文数字转阿拉伯数字
  • num2cn 阿拉伯数字转中文数字
  • ExpandEnvironmentVariables 替换环境变量


在线文本处理服务

本功能为以后扩展文本处理增加支持接口。

调用方式:call:a$ra$cloud$服务名?参数1=值1&参数2=值2

其中,?和后面的参数部分可选(依据具体的在线文本处理功能)。

示例:

  • Echo服务|call:all$rs$cloud$echo


目前可用的处理服务:

  • echo    直接返回原始输入文本。


第三方文本处理服务

本功能为以后扩展文本处理增加支持接口。

调用方式:call:a$ra$url$https://somesite.com/text/processor?参数1=值1&参数2=值2


接口需要符合如下规范:

请求:

以POST方式发送待处理文本,请求体为json格式:

{
  "content":"待处理文本的内容。"
}


响应:

{
    "isSuccess": true,
    "message": "",
    "data": "文本处理结果"
}
  • isSuccess: 是否成功。
  • message: 失败时的错误消息内容。
  • data: 处理后的结果文本。



更新历史

  • 1.1.12 增加字体大小参数。窗口位置增加“全屏”选项。支持Ctrl+滚轮缩放字体。
  • 1.5.17 增加扩展按钮外观定义和功能增强。
  • 1.5.27 增加置顶、失去焦点后关闭等选项。
  • 1.6.2 增加支持光标移动功能。



语雀在语雀上查看