1. 前言
最近一直在使用 Markdown 写文档,但是其中贴图真是太麻烦了,于是就想着能不能有什么好的方法来解决,Google,发现了网上已经有一些前辈写好的教程了,我主要参考了这两篇博客的内容:
但是在直接使用时并不是那么一帆风顺,遇到了各种不成功的情況,然后我就自己调试,摸索了一下,终于成功了。现在将大概的过程记录一下,希望能提供一下参考价值,不至于他人遇到同样的坑。
2. 前期准备工具
1. python
推荐使用 python3.x
本人的python水平为初级入门,在爬坑的过程中发现在Windows环境下 python2.x 对图片路径中含有中文的情况会报错,还需要特别处理一下编码问题。我Google了半天,没有搞定(水平太次,请勿嘲笑)。然后使用 python3.x 版本发现可以很好的解决中文 路径错误的问题,所以就果断使用了python3.x版本。
我本地的python版本为: python2.7.10 和 python 3.5.3
2. AutoHotKey + AutoHotKey.dll
AutoHotkey.dll是用来实现其他脚本语言对AutoHotkey的调用,你需要下载对应于AutoHotKey版本的dll文件,然后将它放到windows/System32文件夹中,AutoHotkey.dll的下载地址为:https://github.com/xzonepiece/markdown-img-upload-windows/tree/master/Autohotkey.dll。
注意:这里AutoHotKey要选择和自己操作系统相匹配的版本。
3. 七牛云账号
实名认证后该平台提供注册用户免费的10G空间;如果没有认证,则有1G的免费空间可以使用。
3. 具体实现
注册七牛云账号,获得自己的
AK
、SK
、空间名称
以及域名地址
.说明:
- AK 和 SK 在七牛云的
个人中心
–>密钥管理
中可以看到 - 在
资源主页
–>七牛官方资源
–>对象存储
–>立即添加
就可以添加存储空间 - 完成空间添加后,空间名称 就是你填写的空间的名称
- 域名地址在你创建空间的
内容管理
可以看到外链默认域名
- AK 和 SK 在七牛云的
安装七牛云的python SDK,参考七牛云的 Python SDK 使用指南
可以通过 pip 或者 easy_install 直接安装,也可以 使用源码安装。
这里我使用的是源码安装,这样可以安装到不同的python版本,另一个原因是我本地没有pip(又要被嘲笑了)。
编写 Python 脚本文件
upload_qiniu.py
这里修改上面两篇参考文献中的内容,略有不同。。
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253#! /usr/bin/python#-*- coding: utf-8 -*-from qiniu import Auth, put_file, etag, urlsafe_base64_encodeimport qiniu.configfrom qiniu import BucketManagerimport sys,timeimport osimport time# you need get yours msg hereaccess_key = "xxx" # 填入你的 AKsecret_key = "xxx" # 填入你的 SKbucket_name = "xxx" # 填入你的七牛空间名称bucket_url = "xxx" # 填入你的域名地址img_suffix = ["jpg", "jpeg", "png", "bmp", "gif"] # 支持多种图片格式def upload_img(bucket_name,file_name,file_path):# generate tokentoken = q.upload_token(bucket_name, file_name, 3600)info = put_file(token, file_name, file_path)# delete local imgFile# os.remove(file_path)returndef get_img_url(bucket_url,file_name):# ?imageMogr2/thumbnail/!65p# file_names = file_name + '?imageMogr2/thumbnail/!75p'file_names = file_name + '?'+ time.strftime('%Y-%m-%d-%H-%M-%S',time.localtime(time.time()))img_url = 'http://%s/%s' % (bucket_url,file_names)# generate md_urlmd_url = "\n" % (file_name, img_url)return md_url# save to clipboarddef addToClipBoard(bucket_url,file_name):text = get_img_url(bucket_url,file_name)command = 'echo ' + text.strip() + '| clip'os.system(command)if __name__ == '__main__':q = Auth(access_key, secret_key)bucket = BucketManager(q)img = sys.argv[1]# name for img with local timeup_filename = os.path.split(img)[1]upload_img(bucket_name,up_filename,img)addToClipBoard(bucket_url,up_filename)其实这一步完成之后,就可用通过命令运行 py 文件实现图片上传并自动获取链接的功能,并且链接地址已经复制到了系统剪贴板,可以通过
ctrl + v
的方式拿到图片的链接了。编写 AutoHotKey脚本文件
markdown_picture.ahk
12345;将图片上传至七牛云,并获得图片地址^!c::send, ^cclipwaitRun %comspec% /k "python *替换成upload_qiniu.py文件的地址* %Clipboard%"为了防止疑惑,这里给出一个 Windows 环境下示例:
12345;将图片上传至七牛云,并获得图片地址^!c::send, ^cclipwaitRun %comspec% /c "python D:\program\qiniu-python-sdk\upload_qiniu.py %Clipboard%"这里也稍微修改了参考文献中的内容,因为在我本地运行时原来的脚本执行不成功。
其中,第五行的“/k” 表示命令执行完成之后,cmd窗口不消失,这样可以方便调试,如果出错了可以看到错误信息;如果希望窗口自动关闭,可以将这个参数设置为“/c”。
启动
markdown_picture.ahk
后,我们就可以使用ctrl + alt + c
–>ctrl + v
来插入图片了。选中一个图片文件,按下
ctrl + alt + c
,这时候会跳出cmd窗口,如果没有错误,你就可以使用ctr + v
来插入图片的七牛云的网络链接,就这么简单!!!
[参考文献]