Markdown
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 在七牛云的
个人中心
-->密钥管理
中可以看到 -
在
资源主页
-->七牛官方资源
-->对象存储
-->立即添加
就可以添加存储空间 -
完成空间添加后,空间名称 就是你填写的空间的名称
-
域名地址在你创建空间的
内容管理
可以看到外链默认域名 -
安装七牛云的python SDK,参考七牛云的 Python SDK 使用指南
可以通过 pip 或者 easy_install 直接安装,也可以 使用源码安装。
这里我使用的是源码安装,这样可以安装到不同的python版本,另一个原因是我本地没有pip(又要被嘲笑了)。
-
编写 Python 脚本文件
upload_qiniu.py
这里修改上面两篇参考文献中的内容,略有不同。。
ps: 下面Python的对其格式有问题,如果直接复制,请调整一下格式。#! /usr/bin/python #-*- coding: utf-8 -*- from qiniu import Auth, put_file, etag, urlsafe_base64_encode import qiniu.config from qiniu import BucketManager import sys,time import os import time # you need get yours msg here access_key = "xxx" # 填入你的 AK secret_key = "xxx" # 填入你的 SK bucket_name = "xxx" # 填入你的七牛空间名称 bucket_url = "xxx" # 填入你的域名地址 img_suffix = ["jpg", "jpeg", "png", "bmp", "gif"] # 支持多种图片格式 def upload_img(bucket_name,file_name,file_path): # generate token token = q.upload_token(bucket_name, file_name, 3600) info = put_file(token, file_name, file_path) # delete local imgFile # os.remove(file_path) return def 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_url md_url = "![](%s)\n" % (file_name, img_url) return md_url # save to clipboard def 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 time up_filename = os.path.split(img)[1] upload_img(bucket_name,up_filename,img) addToClipBoard(bucket_url,up_filename)
-
编写 AutoHotKey脚本文件
markdown_picture.ahk
;将图片上传至七牛云,并获得图片地址 ^!c:: send, ^c clipwait Run %comspec% /k "python *替换成upload_qiniu.py文件的地址* %Clipboard%"
为了防止疑惑,这里给出一个 Windows 环境下示例:
;将图片上传至七牛云,并获得图片地址 ^!c:: send, ^c clipwait Run %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
来插入图片的七牛云的网络链接,就这么简单!!!
[参考文献]
网友评论