很多用Markdown写博客的朋友都会遇到上传图片的问题,一个比较著名的解决方案就是iPic,可以轻松的上传图片并生成Markdown样式的图片链接。

但是iPic支持的图床有限,使用其他图床的用户往往只能通过网页版上传或者在命令行调用API,操作相对复杂。

这时,就轮到我们的主角——Mac下内置的自动化工具——Automator登场了。

Automator是一款强大的自动化工具,这里我们只用其中的一小部分功能,将Shell脚本转化为右键菜单项,有兴趣的读者可以自行开发更多的用途。

编写上传脚本

本文采用的上传方式是通过curl命令调用图床API进行上传,因此我们先要分析API并写出相应的脚本。

著名图床程序Chevereto为例,查阅API文档可以写出如下命令:

curl -F [email protected] http://example.com/api/1/upload/?key=12345&format=txt

该API的返回值就是图片上传后的地址。

利用Automator创建右键菜单项

首先在Launchpad中找到Automator.app,通常是被放在其他文件夹中:

打开后如果没有窗口不要着急,可以点击一下Dock上的Automator图标,就会弹出一个新建窗口,在新建窗口中类型选择服务Service。

之后根据下图按照以下步骤进行操作,下面步骤中尽量使用中文描述,对应的英文翻译可以查看我上传的图片:

  • 将第一行的接受文件类型修改为图片文件,App选择访达(Finder)
  • 从左边搜索运行Shell脚本并拖到右边工作区,然后把右上角的输出修改为作为附件
  • 将下文中给出的脚本粘贴到文本框中,其中的curl命令可以替换为其他图床的上传命令
  • 从左边搜索显示通知并拖到右边工作区,内容按照图片填写
  • 保存并命名为上传图片并生成Markdown链接
API_KEY="12345"  # 图床的API_KEY
RESULT=""  # 用于存储结果的变量
for f in "$@"
do
    TMP_LINK='![]('$(curl -F source=@$f "https://example.com/api/1/upload/?key=$API_KEY&format=txt")')'
    RESULT="$RESULT
$TMP_LINK"
done
echo $RESULT | pbcopy  # 将上传结果传入剪贴板

效果演示

到这里,整个过程就完成了,在一个或者多个图片上按下右键,就可以在服务项中找到我们创建的上传图片并生成Markdown链接,选中并静待完成,对应的Markdown格式链接就会进入我们的剪贴板中。

记得使用前检测剪贴板,不要被程序冲掉了重要的东西哦。


本文由 sandtears 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

楼主残忍的关闭了评论