markdown贴图的workflow

* 安装Alfred
* 申请七牛存储空间
* 设置图片同步目录和七牛空间 参考这里 QRSBox
    初始化
    ./qrsboxcli init <AccessKey> <SecretKey>    <SyncDir> <Bucket> [<KeyPrefix>]
    同步
    nohup ./qrsboxcli sync >/dev/null 2>&1 &

这里的目录和空间地址在下面的脚本里要用到。 我这里不知道什么原因总是同步同步就自己退出了。。。。

* 创建Alfred workflow

设置热键: 设置热键 添加Action: 创建Action 具体脚本如下,需要替换上面设置的图片路径和七牛空间地址:

    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/wentian/Datas/Blog/images/" --这里换成你自己放置图片的路径
        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://noti.qiniudn.com/" & 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
* 把热键和Action关联起来

基本上就可以了,可以截图然后在markdown编辑器里按下你设置的热键试一下是不是直接就是图片地址了,如果网络较慢可能要等一下才能在预览中看到图片。