回到问题本身,分享下我自己的经历。
我学习的方式主要通过参考别人已有的workflow。workflow具体做的事情可能千差万别,但是有很多workflow的实现逻辑是相似的,比如我之前想写一个workflow用于切换mac的全局proxy:Proxy Toggle ,就很大程度参考了另一个用于切换Wi-Fi开发的workflow:Wi-Fi toggle。
Alfred有个很好的地方,就是你都能在alfred中看到你所使用workflow的具体实现,也就是它们对你都是开源的,至少我用过的workflow都可以。大部分workflow直接在alfred的workflows选项卡下都能看到,有部分workflow可能调用一些脚本文件,你也可以进入对应workflow文件夹下打开具体的脚本文件(可以通过右键workflow ->Show in Finder 打开workflow的文件夹)
我认为理解Afred workflow的几个组成部分是入门的关键,包括Triggers、Inputs、Actions、Outputs。
Triggers不是必备的,常用来设置快捷键开启某个Workflow。
Inputs定义了你在Alfred输入框中输入对应的keyword相应的显示内容。
以我常用的 @icyleaf 的有道翻译workflow为例,输入“yd workflow”下面所显示的结果都是Inputs中定义的。Inputs中以一个约定的xml格式输出文本就能被Alfred正确显示,上图的显示对应的xml代码为:
<?xml version="1.0"?>
<items>
<item uid="1.1392438279" arg="工作流 ['wə:k,fləu]" valid="yes" autocomplete="">
<title>工作流 ['wə:k,fləu]</title>
<subtitle>翻译结果</subtitle>
<icon>icon.png</icon>
</item>
<item uid="1.1392438279" arg="n. 工作流,工作流程" valid="yes" autocomplete="">
<title>n. 工作流,工作流程</title>
<subtitle>简明释义</subtitle>
<icon>icon.png</icon>
</item>
<item uid="2.1392438279" arg="工作流, 工作流技术, 工作流程" valid="yes" autocomplete="">
<title>工作流, 工作流技术, 工作流程</title>
<subtitle>网络释义:Workflow</subtitle>
<icon>icon.png</icon>
</item>
<item uid="3.1392438279" arg="工作流管理, 流程管理, 工作流程管理" valid="yes" autocomplete="">
<title>工作流管理, 流程管理, 工作流程管理</title>
<subtitle>网络释义:workflow management</subtitle>
<icon>icon.png</icon>
</item>
<item uid="4.1392438279" arg="工作流程动作, 工作流程 *** 作, 工作流 *** 作" valid="yes" autocomplete="">
<title>工作流程动作, 工作流程 *** 作, 工作流 *** 作</title>
<subtitle>网络释义:workflow action</subtitle>
<icon>icon.png</icon>
</item>
</items>
因为中文字符有转码,所以看起来有点像乱码:( ,这里跟微信公众帐号的工作方式很想吧。
Actions对应选中项后执行的 *** 作,比如在我的Proxy Toggle中,用户执行全局代理切换的工作脚本就写在actions中。
Outputs一般用于显示 *** 作的结果,提示 *** 作成功与否,以Post Notification较为常见,通过Mac的notification center提示。
以有道翻译为例,workflow中各部分示意图如下:
至于调试,貌似也用不到什么技巧,我都是测过脚本语法没问题后直接在本机上执行。
希望以上能对想入门的同学有帮助,这里有我自己写或修改过的几个workflow 尝试给自己写AlfredWork,都是比较简单的。我觉得workflow实现复杂与否不重要,关键在于使用频繁,是否能提高效率。
关键还是多实践,了解workflow工作方式之后,写workflow也就跟开发其他脚本一样了。
儿童钢琴教材_有道翻译翻译结果:
Children's piano teaching material
儿童钢琴教材_有道翻译
翻译结果:
Children's piano teaching material
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)