Mac下利用Alfred与七牛搭建markdown图床

| 字数 1038
  1. 1. 前期准备:
  2. 2. 第一部分:(七牛操作)
    1. 2.1. 第一步:
    2. 2.2. 第二步:
    3. 2.3. 第三步:
  3. 3. 第二部分:(alfred workflow操作)
    1. 3.1. 第一步:
    2. 3.2. 第二步:
    3. 3.3. 第三步:
  1. 1. 前期准备:
  2. 2. 第一部分:(七牛操作)
    1. 2.1. 第一步:
    2. 2.2. 第二步:
    3. 2.3. 第三步:
  3. 3. 第二部分:(alfred workflow操作)
    1. 3.1. 第一步:
    2. 3.2. 第二步:
    3. 3.3. 第三步:

        在使用hexo与gitpage完成个人博客搭建后,在写博客时想插入图片总是需要外链,感觉很繁琐。刚好在利用alfred的workflow后觉得能不能把整套手动获取图片外链的动作变成自动化的动作,来用热键触发。搜了下相关的文章自己踩了不少坑最终还是完成了,总结出来避免大家后面踩坑。

前期准备:

  • 可以使用workflow的alfred(能支持正版最好不过我还是准备了链接,位置在文章最后)
  • 七牛账号&七牛自动化工具qshell
  • 截图工具(这个也可以没有,可以利用电脑自带的截图功能,只要保证截图动作后的结果处于剪切板中即可)

第一部分:(七牛操作)

第一步:

注册成功登陆后,单击 管理控制台 -> 对象存储 -> 内容管理 找到外链默认域名,复制并保存。

第二步:

返回首页,单击 服务与支持 -> 开发者中心 -> sdk与工具 -> 开发者工具 -> qshell 进入后按照提示下载并安装。

第三步:

创建账户时,除了ak&sk 现在还需要输入七牛账户名;配置upload.conf文件时需要注意如果本地新增文件七牛默认不会自动检查,你需要设置 rescan_local: true ;如果你在七牛空间(web页)中手动删除某个文件,再次上传该文件的时候七牛默认该文件已经存在空间中,不会再上传该文件,你需要配置 check_exists: true 。

第二部分:(alfred workflow操作)

第一步:

点击 + ,创建blank workflow即可,注意bundle id必填一个唯一值,能够在alfred中标示你这个workflow即可,其余选项正常填写,category默认选项即可。

第二步:

创建热键hotkey,其余默认选项不变,完成后save。

创建热键触发后需要执行的脚本文件,当然run script创建的脚本是后台运行不需要先调出terminal(控制台),如果需要调出terminal(控制台),选择terminal command。
根据脚本语言对应选择language,这里提供一个as版本代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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/xxx/Documents/screenCaptures/" --这里换成你自己放置图片的路径
set fileName to do shell script "date \"+%Y%m%d%H%M%S\" | md5" --用当前时间的md5值做文件名
set prefix to "i7eo_" -- 改成自己的前缀
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://xxx.com/i7eo_" & fileName & ")" --这里如果没有用到图床,就把前面前缀去掉,用到的话换成你自己图床的url
set filePath to filePath & prefix & 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

http://xxx.com/
改为之前从七牛默认外链处复制出来的地址。

第三步:

再次创建一个blank workflow,热键自己设置;再次创建一个as脚本,具体代码如下:

1
do shell script "/usr/local/bin/qshell qupload ~/.qshell/upload.conf"

把qupload前的路径换成自己存放七牛qshell文件的位置。

        这个方法适合写博客时,把该篇博客需要的图片都存放在同一个文件下,写完后一次性上传至七牛空间。然后在把博客推至gitpage即可。

        如果想每次插入一张图片就上传,可以使用插件 Mac 版本的 Markdown 一键贴图工具

alfred3 Powerpack