├── .gitignore
├── Autohotkey.dll
├── 32bit ANSI
│ └── AutoHotkey.dll
├── 32bit Unicode
│ └── AutoHotkey.dll
└── 64bit
│ └── AutoHotkey.dll
├── ReadMe.md
├── upload_folded.ico
├── upload_qiniu.ahk
└── upload_qiniu.py
/.gitignore:
--------------------------------------------------------------------------------
1 | *.ini
--------------------------------------------------------------------------------
/Autohotkey.dll/32bit ANSI/AutoHotkey.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xzonepiece/markdown-img-upload-windows/b469407c12163a1990c0a8f234f94e64389204ea/Autohotkey.dll/32bit ANSI/AutoHotkey.dll
--------------------------------------------------------------------------------
/Autohotkey.dll/32bit Unicode/AutoHotkey.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xzonepiece/markdown-img-upload-windows/b469407c12163a1990c0a8f234f94e64389204ea/Autohotkey.dll/32bit Unicode/AutoHotkey.dll
--------------------------------------------------------------------------------
/Autohotkey.dll/64bit/AutoHotkey.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xzonepiece/markdown-img-upload-windows/b469407c12163a1990c0a8f234f94e64389204ea/Autohotkey.dll/64bit/AutoHotkey.dll
--------------------------------------------------------------------------------
/ReadMe.md:
--------------------------------------------------------------------------------
1 | ## 简介
2 | 实现Windows上通过ctrl+alt+c -> alt+v往Markdown文档中插入图片
3 |
4 | ## 工具
5 | * [Python](https://www.python.org)
6 |
7 | > 要安装`qiniu`模块(必要)和`ConfigParser`模块
8 |
9 | * [AutoHotkey](http://ahkscript.org)+AutoHotkey.dll
10 |
11 | > AutoHotkey.dll是用来实现其他脚本语言对AutoHotkey的调用,请下载对应于你的AutoHotKey版本的dll文件,然后将它放到windows/System32文件夹中
12 |
13 | * 七牛云账号
14 |
15 | ## 配置
16 | 1. 注册七牛云账号,获得自己的AK、SK、空间名称以及域名地址
17 | 2. 新建配置文件`config.ini`,将它与`upload_qiniu.py`放在同一目录下
18 | ```
19 | [qiniu]
20 | ak = # 填入你的AK
21 | sk = # 填入你的SK
22 | url = # 填入你的域名地址
23 | bucket = # 填入你的空间名称
24 | styleName = # 填入图片样式
25 | ```
26 | 1. 将`markdown_picture.ahk`文件中*python*后面的地址替换成`upload_qiniu.py`文件的绝对地址
27 | 2. 双击`markdown_picture.ahk`文件,执行该脚本
28 |
29 | ## 使用
30 | 选中图片文件,按ctrl+alt+c,此时会跳出cmd窗口,当该窗口自动关闭之后,按alt+v就会在Markdown文档中插入图片
31 |
--------------------------------------------------------------------------------
/upload_folded.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xzonepiece/markdown-img-upload-windows/b469407c12163a1990c0a8f234f94e64389204ea/upload_folded.ico
--------------------------------------------------------------------------------
/upload_qiniu.ahk:
--------------------------------------------------------------------------------
1 | ;为该脚本添加特殊图标
2 | Menu, Tray, Icon, G:\Autohotkey\markdown_picture\upload_folded.ico, ,1
3 | ;将图片上传至七牛云,并获得图片地址
4 | ^!c::
5 | send, ^c
6 | clipwait
7 | Run %comspec% /c "Python G:\Autohotkey\markdown_picture\upload_qiniu.py %Clipboard%" /p
8 | return
9 |
--------------------------------------------------------------------------------
/upload_qiniu.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | import os
4 | import sys
5 | reload(sys)
6 | sys.setdefaultencoding('utf-8')
7 |
8 | from qiniu import Auth, put_file
9 | import qiniu.config
10 |
11 | from ctypes import *
12 | import time
13 |
14 | import ConfigParser
15 | from datetime import datetime
16 |
17 |
18 | cf = ConfigParser.ConfigParser()
19 | cf.read('config.ini')
20 | access_key = cf.get('qiniu', 'ak') # AK
21 | secret_key = cf.get('qiniu', 'sk') # SK
22 | bucket_name = cf.get('qiniu', 'bucket') # 七牛空间名
23 | url = cf.get('qiniu', 'url') # url
24 | styleName = cf.get('qiniu', 'styleName')
25 |
26 | q = Auth(access_key, secret_key)
27 |
28 | mime_type = "image/jpeg"
29 | params = {'x:a': 'a'}
30 |
31 | prefix = datetime.now().strftime('%Y_%m_%d')
32 |
33 | def upload_qiniu(path, prefix):
34 | ''' upload file to qiniu '''
35 | dirname, filename = os.path.split(path)
36 | key = '%s_%s' % (prefix, filename) # upload to qiniu's dir
37 | key = key.decode('gbk').encode('utf8')
38 |
39 | token = q.upload_token(bucket_name, key)
40 | progress_handler = lambda progress, total: progress
41 | ret, info = put_file(token, key, path, params, mime_type, progress_handler=progress_handler)
42 | return ret != None and ret['key'] == key
43 |
44 | if __name__ == '__main__':
45 | path = sys.argv[1]
46 | ret = upload_qiniu(path, prefix)
47 | if ret:
48 | # upload success
49 | name = os.path.split(path)[1]
50 | alt = name.split('.', 1)
51 | markdown_url = "" % (alt[0], url, prefix, name, styleName, alt[0])
52 | # make it to clipboard
53 | ahk = cdll.AutoHotkey #load AutoHotkey
54 | ahk.ahktextdll("") #start script in persistent mode (wait for action)
55 | while not ahk.ahkReady(): #Wait for AutoHotkey.dll to start
56 | time.sleep(0.01)
57 | ahk.ahkExec(u"clipboard = %s" % markdown_url.decode('gbk'))
58 | else: print "upload_failed"
59 |
--------------------------------------------------------------------------------