上一篇,主要介绍了如何通过热键打开某个应用,设置默认输入项及对已有的workflow进行管理和筛选。今天开始研究下,alfred是如何接收参数,并通过一个例子来学习下,ListFilter怎么工作的
Alfred参数接收及变量设置
创建变量和参数工具
alfred的工作面板,使用变量和参数工具可以接收用户输入的参数信息,创建方式如下图,右键->换出菜单栏之后->Utilities->Arg and Vars
点击Arg and Vars之后,就创建好了参数变量工具,在Argument里面会默认有一个{query}的值,这个query就是我们接收到的用户输入的值,在Variables里面,我添加了两个选项,一个是name,值是{query}, 这个的话,使用{name}也可以获取到用户输入的值。这里有人可能会有疑问,那name和query的值都是一样的,为什么要这么写呢?其实这么做的好处有3个,
- 值在后续的流程传递时,更加的可读。更好的理解
- 将值保存下来,方便后面使用
- 动态修改这个值
此外我还另外添加了一个username ,值是chengyan。这就是允许我们添加一些常量。
研究一下官方给的一个Demo:Simple To-Do List
在workflow偏好设置页,点击左下角的加号,然后选择examples->Simple To-Do List,创建好之后,大概是下面这个样子
简单介绍下这个workflow的功能,输入todo+任务名称,进入下一个工作流,你可以选择生活、工作、等待完成 3个选项,选择其中某一个之后,就会将你刚才输入的任务添加到相应的任务列表里面,工作流会使用filepath这个环境变量,拼接3个选项对应的名称,创建出一个.txt的文件,将你输入的任务添加到这个文件里面。后续的话,可以使用vtodo关键字,选择不同的分类名称,打开相应的文件夹。
todo keyword
关键字组件,一般作为workflow的输入源,可以设置alfred识别的关键字,在当前的例子里面,使用的是todo 关键字
Arg/Var
变量和参数组件,这个组件用来设置变量,当前例子中,将{query}设置为task变量
List Filter
列表过滤组件,目前是一个静态的过滤组件,添加了Home、Work、WatingFor3个下拉选项,用来将之前输入的{task}进行分类,选择不同的下拉选项之后,就会将任务添加到对应的文件中
Arg/Var
将上一步输入来的{query}作为filename,来继续传递
Filter
过滤器,这个相应于if,else的功能,进行判断,工作流该往哪走,在当前这个workflow里面,根据判断第一步是否输入了任务,来决定。当任务有值的时候,做写入操作,当任务没有值的时候,执行打开文件的操作
文件写入和文件打开
writeFile 在output的工具选项中,允许我们在特定的路径下写入内容。openfile 在actions,可以打开一个特定的文件或者文件夹
设置环境变量
在workflow的工作面板,点击[x],可以设置当前workflow的环境变量,在Simple
To-Do List中,设置了path,用来拼接文件的路径。
这就是今天研究了的关于环境变量、常规变量、参数的设置和使用,此外还了解了ListFilter的使用方式