最近用上了alfred,感觉特别好用。尤其是workflow的功能,简直不能更赞。在网上找了下,没发现特别号的编写workflow的教程。虽然很简单,还是分享给大家,希望能帮助到更多的朋友,也希望有更多更好的workflow出现。 下面是一个简单的例子。

第一个worklfow

用sublime打开当前文件夹

熟话说要学一个东西得先会模仿。现在我们要做一个用sublime打开当前finder所在文件夹的workflow。第一步当然先去http://www.alfredworkflow.com/看看有没有和我们相似的workflow,然后拿下改一改就好了。

how-to-write-workflow01.png

然后我们发现一个和我们需求非常相似的,open current folder in iTerm。下载下来然后倒入到alfred看看源码。

how-to-write-workflow01.png

可以看到如上图,关机字是.然后双击Run NSAppleScript就能看到源码了。可以看到源码是用appleScript写的,看起来很简单。

on alfred_script(q)

set finderPath to ""

tell application "Finder"

try

set finderFolder to (folder of the front window as alias)

on error

set finderFolder to (path to home folder as alias)

end try

set finderPath to quoted form of POSIX path of finderFolder

end tell

tell application "iTerm"

activate

try

set _session to current session of current terminal

on error

set _term to (make new terminal)

tell _term

launch session "Default"

set _session to current session

end tell

end try

tell _session

write text "cd " & finderPath

end tell

end tell

end alfred_script

大概看懂代码也就明白是什么意思了,就是先把finderPath设置成空,然后获取当前finder所在的路径,然后告诉iterm打开并切换到这个路径。

我们把这段代码稍微改一下,就能得到我们想要的用sublime打开当前文件夹了。在alfred的设置,workflow里面:

点击右下角的+号 --> Blank Workflow

添加后选中新建的Blank Workflow 右上角点 + 号input->keyword

配置好后再右上角 + Action->Run NSAppleScript

然后添加下面我们修改过的代码,保存就完成了

{% highlight python %}

on alfred_script(q)

set finderPath to ""

tell application "Finder"

try

set finderFolder to (folder of the front window as alias)

on error

set finderFolder to (path to home folder as alias)

end try

set finderPath to quoted form of POSIX path of finderFolder

do shell script "/Applications/Sublime' 'Text.app/Contents/SharedSupport/bin/subl " & finderPath

end tell

end alfred_script

里面do shell script "/Applications/Sublime' 'Text.app/Contents/SharedSupport/bin/subl " & finderPathscript后面是你的sublime的路径看看你的是不是这个路径,不是的话记得修改。

第二个worflow

查看网上笑话

程序员工作确实很累,有时候能休闲一下,来个小段子也是不错的,能放松心情,女朋友心情不好的时候复制下来,哄哄女朋友也不错。

步骤:

新建一个Blank Workflow

为新建的Blank Workflow添加描述

添加Script Filter

编写你的script脚本

添加Workflow Action

1.新建一个Blank Workflow

2. 为新建的Blank Workflow添加描述

在新建后的弹出窗口中填下worklow的相关信息。

how-to-write-workflow-for-alfred-2.png

3. 添加Script Filter

how-to-write-workflow-for-alfred-3.png

在弹出框中添加script的描述

how-to-write-workflow-for-alfred-4.png

在language的地方可以选择/usr/bin/python或者你自己适合的语言,然后把代码放在script里面就好。不过为了调试方便,可以选择/bin/bash 这样可以在script里面写上python getjoke.py来运行。也方便调试。下面我们就要来写getjoke.py了

4. 编写你的script脚本

选中我们的workflow右键,然后再finder中显示。

到了文件夹后开始创建我们的python脚本。因为是用python来写,有一个python的workflow库很好用,可以去下载最新版本,下载后解压后复制alfred.py到我们的workflow所在的文件夹。现在新建getjoke.py。添加代码:

# -*- coding: utf-8 -*-

from bs4 import BeautifulSoup

import re

import urllib2

import alfred

def main():

url = 'http://www.neihan8.com/lxh/'

content = urllib2.urlopen(url).read()

result = []

soup = BeautifulSoup(content)

title_list = soup.find_all("h4")

content_list = soup.find_all("div", class_="f18 mb20")

len = (title_list.__len__() if title_list.__len__()>content_list.__len__()

else content_list.__len__())

pattern = re.compile("[\u0391-\uFFE5]*")

for i in range(len):

title = title_list[i].contents[1].string

result.append(alfred.Item( {"uid":alfred.uid(i)},

title, content_list[i].string.strip(), None))

alfred.write( alfred.xml(result))

if __name__ == "__main__":

main()

因为没有api所以是抓取的数据再解析的,所以用到了beautifulsoap这个包,下载这个包复制bs4这个文件夹到workflow所在的目录即可。

how-to-write-workflow-for-alfred-5.png

总结

总的来说写一个workflow就是获取你需要的数据,然后组装成一个xml文件,xml文件的格式如下:

女友口渴

今天我和女友去逛街,她说口渴,我二话没说就跑去附近卫生间拿着瓶子打开水龙头装了一瓶水。女友喝了还说好甜,我暗暗的笑了,又省了一块钱

精通十以内的加减乘除

今天看见一个朋友领着小孩。传言中,这孩子精通十以内的加减乘除。 于是我考了考这孩子,我就问了个5.65乘以6.56等于多少。我那朋友瞪了我一眼。我问错了么?

还有其他很多action就靠大家自己研究了。

workflow 添加html,为alfred编写workflow相关推荐

  1. Alfred之workflow入门

    前言 小帽子alfred可以说是macOS上最佳的效率软件了,而其中最强大的功能就属alfred 2.0推出的Workflow特性了.就像我们工程师遇到重复性工作总是想写脚本或者程序来解放自己一样,w ...

  2. R语言使用table1包绘制(生成)三线表、使用单变量分列构建三线表、自定义为指定的分列因子添加分组标签、编写自定义函数指定统计量的呈现方式

    R语言使用table1包绘制(生成)三线表.使用单变量分列构建三线表.自定义为指定的分列因子添加分组标签.编写自定义函数指定统计量的呈现方式 目录

  3. workflow 添加html,workflow1.html

    easy java document | easy-java Easy Java 网页设计器 发布日期:2020.05.30 在Vue中集成Activiti网页设计器,为动态工作流研发作准备工作 图1 ...

  4. php往pdf模板添加数据,用PHP编写/绘制PDF模板文档

    我希望能够用PHP在现有的PDF文档上编写/覆盖文本.我希望做的是有一个pdf文档,它可以作为一个模板,并通过打开模板文档.覆盖相关文本以及将结果作为一个新文档来填补空白.模板文档是一个单独的页面,因 ...

  5. linux 添加spi 驱动,Linux下SPI和IIC驱动免在设备树上添加设备信息的编写方法

    编写驱动时,一般需要往设备树上添加节点信息,这里提供一种直接在驱动中添加设备信息的方法. i2c的驱动模板如下 #include #include #define SENSOR_BUS_NUM 0 # ...

  6. 做python自动化得时候怎么添加断言_在编写Web自动化测试用例的时候,如何写断言使新手不解,严格意义上来讲,没有断言的自动化脚本不能叫测试用例。就像功能测试一样,当测试人员做了一些操作...

    在编写Web自动化测试用例的时候,如何写断言使新手不解,严格意义上来讲,没有断言的自动化脚本不能叫测试用例.就像功能测试一样,当测试人员做了一些操作之后必然会判断实际结果是否等于预期结果,只不过,这个 ...

  7. Alfred神器使用手册【转】

    我曾经耗费巨大的精力,试图在计算机的使用效率上找到一条优化的捷径,一直以来都收效甚微.直到遇上 alfred,它强大的工作流机制,彻底解决了输入输出的痛点,极大的减少了程序之间的切换成本和重复按键成本 ...

  8. Alfred 有多强悍,我写了个一键上传图片的 workflow 来告诉你

    " 阅读本文大概需要 10 分钟. " 前言 一直以来用的都是 MarkEditor 写作,它有一个比较重要的功能:能自动将拷贝到编辑器中的截图同步到图床,这样如果要将文章导出发到 ...

  9. python workflow_Python新手也会写的Alfred Workflow

    Alfred的是公认的MacBook效率神器,入坑Mac这么久用了很多别人写的workflow觉着真心不错.学了一点python终于可以写个简单的workflow了,先上效果图: 先上效果图 关于Al ...

最新文章

  1. hadoop启动_Mac OS X 上搭建 Hadoop 开发环境指南
  2. HDU2925(约瑟夫环问题)
  3. mysql 中修改对象_在MySQL中,创建一个数据库后,还可以对象其进行修改,不过这里的修改是指可以修改被创建数据库的相关参数,也可以修改数据库名。...
  4. 2021年春季学期-信号与系统-第一次作业参考答案-第三题
  5. 字节跳动技术整理:mysql查询重复数据sql
  6. 深入使用XMemcached
  7. python中的字典推导式_17.python 字典推导式(经典代码)
  8. python统计分析--4.Logistic回归
  9. 冷知识:数学常数“e”的传奇故事
  10. oracle执行计划的概念,SQL语句性能调整之ORACLE的执行计划
  11. Centos 7安装docker实战
  12. 【翻译】BCGControlBar Professional Edition for MFC v 29.0重大更新
  13. 121. VLD 的使用
  14. SQL 查找是否“存在“,别再 count 了,很耗费时间的!
  15. 使用Chrome Frame插件解决IE浏览器兼容问题
  16. python爬虫实时转发文章新闻;微信机器人使用;
  17. 智能化施工(综合管线)
  18. Java写的小游戏贪吃蛇代码
  19. android项目版本,怎查看Android项目的Android版本
  20. matlab分布鲁棒优化程序 是学习wasserstein 距离 分布鲁棒的好程序 文章是基于综合能源的分布鲁棒优化

热门文章

  1. c语言图像压缩编码,基于C语言的图像压缩算法
  2. PC端阴阳师 加长百鬼夜行舞台 如何简单修改分辨率
  3. 2018六校联合周赛上学期第一场-我来爆零啦 寻找中位数 kth
  4. 浅谈Echarts3.0
  5. 计算机毕业设计asp.net校园二手物品交易平台(源码+系统+mysql数据库+Lw文档)
  6. 惠斯登电桥传感器电路设计技巧,了解一下?
  7. 英语口语练习十七之I can't figure out... (我搞不懂……)的用法
  8. 手机号码验证归属地 接口整理
  9. 【转】60系列应用的全屏处理
  10. Linux下的动态库和静态库