MarkDown中一键贴图 for Mac
@(Other)
今天发现CSDN博客支持Markdown编辑器,所以发一篇整理的文章。本文是根据几篇文章整理而成。可以大幅度简化Markdown文章写作时图片的插入操作,达到“一键贴图”。下面整理了一些我使用时的备忘录。
达到的效果为:
* 利用QQ截图或者其它工具将图片放到剪切板
;
* 在文本编辑框中,按下快捷键
: control + command + v,会出现一个markdown格式的图片代码,例如![](http://test.com/abc.jpg)
;
* 此时图片可以被自动上传到七牛云存储。
来源文章:
使用七牛云存储和alfred的workflow简化markdown贴图流程
简化静态博客发图的Alfred工作流
QRSBOX同步工具
下载Alfred
注意必须使用带PowerPack的,即付费版
创建Alfred Workflow
- 新建一个Workflow
- 加个Hotkey的Triggers,写上自己熟悉的热键作为粘贴的热键使用:
- 接下来要加一个Actions,来源文章中提到NSAppleScript有一些问题,使用了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/rk/Documents/blog/source/img/qnsync/" --这里换成你自己放置图片的路径
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://rk-blog.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
然后把Triggers和Action之间画一道线
在七牛申请一个免费账户,免费账户已经完全够用了。
新建一个空间,假定你的空间名为test,那么七牛会给所有放在当前空间中的文件生成链接http://test.qiniudn.com/abc.png
再自己的电脑上配置自动一个文件夹,让其中的图片能够被自动上传到七牛的空间。下载QRSBox参考链接配置成自动同步之前我们放图片的文件夹
回到前面的脚本,将markdownUrl改成你的七牛空间地址,如果你的空间名为test,则改为
http://test.qiniudn.com/
,同时将本机的同步文件夹改为你的实际同步文件夹路径。
七牛同步工具的使用说明
命令行工具使用方法
首先,下载 QRSBox 命令行工具,并解压。
然后,在解压后的文件夹中执行以下命令,进行初始化:
./qrsboxcli init <AccessKey> <SecretKey> <SyncDir> <Bucket> [<KeyPrefix>]
其中,<AccessKey>
和 <SecretKey>
在七牛云存储平台上申请。步骤如下:
1. 开通七牛开发者帐号
2. 登录七牛开发者自助平台,查看 Access Key 和 Secret Key
<SyncDir>
是本地的同步目录,该目录下的文件会随时同步上传值七牛云存储。
<Bucket>
是保存同步文件的资源空间名。
<KeyPrefix>
是文件前缀,可选。如果设置了该参数,那么上传的文件名前都会加上前缀。这个前缀主要用于在空间中区分不同上传来源的文件。
最后,用户可以使用以下命令开始文件同步:
./qrsboxcli sync &
这里使用了 & 符号,让同步客户端进程运行在后台。如果退出终端后程序中断,请使用以下命令代替:
nohup ./qrsboxcli sync >/dev/null 2>&1 &
用户可以通过以下命令查看同步过程:
./qrsboxcli log
如果需要停止后台运行的qrsboxcli,可以使用如下命令:
./qrsboxcli stop
如果希望改变同步的目录、bucket等运行参数,需要先用 stop 命令停止 qrsboxcli 的后台程序,重新用新的参数运行初始化命令,然后再次启动同步程序,qrsboxcli会立刻按新的配置将新目录的文件同步至七牛云存储。
命令使用说明
执行以下命令可以获得各个子命令的使用说明:
./qrsboxcli
Usage:
qrsboxcli init <AccessKey> <SecretKey> <SyncDir> <Bucket> - Init qrsbox conf
qrsboxcli sync & - Watch <SyncDir> and sync files
qrsboxcli log - View sync log
qrsboxcli stop - Kill qrsboxcli sync process
BuildVersion:
qrsboxcli v2.5.20131013
配置文件
命令行工具的配置文件通常保存在用户主目录的.qrsbox下,执行init命令时会将具体目录路径输出到屏幕上。 具体内容如下(JSON格式):
{
"tasks": [
{
"src": "<SyncDir>",
"dest": "qiniu:bucket=<Bucket>",
"skipsym": 0,
"syncdur": 0
}
],
"access_key": "<AccessKey>",
"secret_key": "<SecretKey>",
"debug_level": 0
}
其中,
tasks
字段指定监控任务:
src
字段指定受监控的文件目录;
dest
字段指定上传目标参数,如空间名()和文件前缀(KeyPrefix),多个参数须以&符号分隔;
skipsym
字段指定是否跳过链接文件,0表示不跳过,1表示跳过;
syncdur
字段指定监控检测周期,单位为秒,0表示使用默认值(0.5秒)。
access_key
字段指定AccessKey值;
secret_key
字段指定SecretKey值;
debug_level
字段指定日志信息输出等级,默认值为0,即输出Debug信息。
ignore
文件与规则
qrsbox 和 qrsboxcli 支持使用 ignore 文件来忽略某些不需要上传的文件,详见 ignore 规则。