Skip to content

Instantly share code, notes, and snippets.

@runningdemo
Last active December 24, 2015 04:09
Show Gist options
  • Save runningdemo/6741895 to your computer and use it in GitHub Desktop.
Save runningdemo/6741895 to your computer and use it in GitHub Desktop.
#流

由于新版(Version 2.7 (263181))skitch取消了ftp分享功能.现在使用skitch自带的文件export功能将文件保存到本地.经过修改后的流程加上新版skitch添加的编辑功能,使整个流程更加顺畅.

适用于mac系统的一劳永逸(且免费)的截图,编辑,分享方案,由三个步骤组成.

目标: 理想中的流程

截图-->自动弹出编辑器-->手动做简单的编辑,保存-->自动重命名保证文件名唯一性-->自动转移文件至dropbox public文件夹-->自动生成分享链接并存入剪贴板

准备: 环境与依赖

  • mac 电脑
  • applescript 自动生成链接(下面提供代码)
  • evernote skitch 截图,编辑
  • Dropbox 图床
  • Hazel 重命名以及将指定图片存入public文件夹

步骤一: 设置Hazel规则

由于我将skitch截的图统一export至documnts文件夹下,所以我所有的规则都是对于文件夹~/Document来设置.

Hazel的任务:
任务a: 判断文件是否满足条件
任务b: 重命名文件
任务c: 获取文件的文件名,自动装配成dropbox public文件公共链接的形式
任务d: 将文件移动到dropbox public文件夹下

任务a: 判断文件是否满足条件

  1. 文件类型是图片类型
  2. 文件名中包含字符串'mdi'

任务b: 重命名文件
为了避免图片重名的问题,这里使用了以下格式进行自动重命名: 图片名+日期+时+分+秒作为图片名如: 'mdi-test2013-11-18143433.png'

任务c: 获取文件名,自动装配成dropbox pulic文件公共链接形式
这里我触发一条applescript来完成这个动作.在完成上述动作的同时已经将公共链接拷贝入剪贴板了.

on hazelProcessFile(theFile)
  tell application "Finder"
    set latestFile to item 1 of (sort (get files of (path to documents folder)) by creation date) as alias
    set fileName to latestFile's name
    set the clipboard to "https://dl.dropboxusercontent.com/u/85873187/" & fileName
  end tell
  
end hazelProcessFile

上面的代码会做以下事情:1)去检查你的~/documents/文件夹中最后添加的文件,获得其文件名. 2)根据文件名装配好dropbox的共享链接并拷贝至剪贴板.

Alt text

任务d: 将文件移动到dropbox public文件夹下
这是最关键的一部,到目前为止这个文件仍然在你的本地,所以需要设置hazel规则将其转移到~/Dropbox/public/下才算完成.

设置Hazel
Alt text

步骤三: 使用skitch截图,编辑

(1)截图:
使用默认快捷键'Command+Shift+5'
(2)编辑
你想怎么皋就怎么皋
(3)重命名
因为在Hazel的规则中我规定了只有文件命中含有'mdi'的文件才继续执行任务.所以在export(Command+E)截图的时候skitch中给截图重命名一下:

步骤四(完结): 使用command+v把你的图片链接张贴出去吧

参考资料

how-to-get-the-latest-downloaded-file-name-with-applescript-programatically

ps: 因为第一次写这类文章.如果描述不清楚,或者有疑问的地方请留言,我会感谢你的建议.

@liujb
Copy link

liujb commented May 5, 2014

大哥 设置Hazel 那张图片没有了啊

@runningdemo
Copy link
Author

@liujb Fixed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment