把自己的blog迁到了github上,为了解决图片加载慢的问题又用了qiniudn做图床加速。没想到用力太猛,贴图比之前更麻烦了。。。没办法,用Alfred写了个Workflow,一劳永逸的解决贴图的问题吧……
使用octopress写文章,贴图的常见流程是:
在我no zuo no die的用了第三方网站做图床以后,又多了一步:
我擦……这事儿干下来基本上写文的一点儿激情就都烟消云散了……
这个写稿贴图的事儿最好可以简化成这样就爽到了:
恩,就这两步,剩下的恶心事儿最好都有人帮着做了就爽了……
网上搜了半天,没找到现成的东西%>_<%,难道大家都这么苦日子过着??
好吧,发扬懒人改变世界的精神,自己动手丰衣足食吧……
先打开自己最爱的Alfred,新建一个Workflow(注意,必须是有Powerpack的版本哦~~):
加个Hotkey的Triggers,写上自己熟悉的热键作为粘贴的热键使用:
由于我直接用QQ截图,QQ热键是Ctrl+Cmd+A,所以就直接设置Ctrl+Cmd+V了……
接下来要加一个Actions,本来打算用NSAppleScript的,但是从AppleScript编辑器里粘过去的代码死活不work,没辙,改用Run Script
的Action了。
双击Action,Language选择/usr/bin/osascript
,把下面的代码粘贴到Script
区域:
property fileTypes : {¬ {«class PNGf», ".png"}, ¬ {JPEG picture, ".jpg"}} on getType() --判断剪贴板中的数据类型,暂时只支持png和jpg,优先用png repeat with aType in fileTypes repeat with theInfo in (clipboard info) if (first item of theInfo) is equal to (first item of aType) then return aType end repeat end repeat return missing value end getType set theType to getType() if theType is not missing value then set filePath to "/Users/viecks/Datas/Blog/octopress/source/images/attaches/" --这里换成你自己放置图片的路径 set fileName to do shell script "date \"+%Y%m%d%H%M%S\" | md5" --用当前时间的md5值做文件名 if fileName does not end with (second item of theType) then set fileName to (fileName & second item of theType as text) set markdownUrl to "![](http://attaches-mirror.qiniudn.com/images/attaches/" & fileName & ")" --这里如果没有用到图床,就把前面前缀去掉,用到的话换成你自己图床的url set filePath to filePath & fileName try set imageFile to (open for access filePath with write permission) set eof imageFile to 0 write (the clipboard as (first item of theType)) to imageFile -- as whatever close access imageFile set the clipboard to markdownUrl try tell application "System Events" keystroke "v" using command down end tell end try on error try close access imageFile end try return "" end try else return "" end if
然后把Triggers和Action之间牵个红线……
然后Ctrl+Cmd+A,Ctrl+Cmd+V,
擦,很神奇的一个markdown的image标签就出现在你的编辑器里面了,文件也直接出现在你的图片目录里了,O(∩_∩)O,直接去deploy吧……
首发于viecks个人博客,转发请联系作者。