前言
Markdown作為現(xiàn)在比較流行的寫作工具(準(zhǔn)確地說是標(biāo)記語言),已被越來越多的人使用,很多主流的博客網(wǎng)站或?qū)懽髌脚_(tái)都支持這種寫作工具(比如,我最喜歡的簡(jiǎn)書),但是Markdown中的貼圖方法有些麻煩,因?yàn)镸arkdown是純文本工具,它不能像Word那樣通過插入的方式內(nèi)嵌進(jìn)去,盡管有些Markdwon軟件提供類似地插入功能,但是一旦本地圖片移動(dòng)到別的位置,圖片也無法顯示,而且不同地Markdown軟件對(duì)本地圖片的語法也有所區(qū)別,所以最可靠的辦法還是上傳到圖床上,通過圖床提供的圖片鏈接來插入圖片。但是,通過這種方式,你最少也需要三步:上傳圖片 -> 獲得鏈接 -> 粘貼鏈接,再加上你還要打開瀏覽器,在各種軟件之間切換,這種方式的效率極低,那有沒有一種類似ctrl+c -> ctrl+v的方式呢?當(dāng)然有,下面我就來告訴你。
如果你使用的是Mac的話,請(qǐng)參考這篇文章上提供的方法-簡(jiǎn)化markdown寫作中的貼圖流程;如果你使用的是Windows的話,請(qǐng)使用我下面介紹的方法。

前期工具準(zhǔn)備
- Python(世界上最強(qiáng)大的腳本語言)
說到這里我不得不承認(rèn),要使用這種方法的話,你可能要會(huì)一點(diǎn)Python,至少要安裝了Python
- AutoHotkey(Windows上最方便的腳本語言)+AutoHotkey.dll
AutoHotkey.dll是用來實(shí)現(xiàn)其他腳本語言對(duì)AutoHotkey的調(diào)用,你需要下載對(duì)應(yīng)于AutoHotKey版本的dll文件,然后將它放到windows/System32文件夾中
[AutoHotkey.dll]下載地址(https://github.com/xzonepiece/markdown-img-upload-windows/tree/master/Autohotkey.dll)
- 七牛云賬號(hào)(該平臺(tái)提供注冊(cè)用戶免費(fèi)的10G空間)
但是,如果你只使用本地圖片的話,我告訴你一種插入本地圖片全宇宙最快的方法,只需要安裝AutoHotkey即可,具體方法往下翻
具體實(shí)現(xiàn)方法
注冊(cè)七牛云賬號(hào),獲得自己的AK、SK、空間名稱以及域名地址
安裝七牛云的Python SDK,參考Python SDK 使用指南
pip install qiniu-
編寫Python腳本文件
upload_qiniu.py
#-- coding: utf-8 --
import os
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
from qiniu import Auth, put_file
import qiniu.config
from ctypes import *
import timeaccess_key = "xxx" # 填入你的AK secret_key = "xxx" # 填入你的SK bucket_name = "xxx" # 填入你的七牛空間名稱 url = "xxx" # 填入你的域名地址 q = Auth(access_key, secret_key) mime_type = "image/jpeg" params = {'x:a': 'a'} def upload_qiniu(path): dirname, filename = os.path.split(path) key = '%s' % filename key = key.decode('gbk').encode('utf8') token = q.upload_token(bucket_name, key) progress_handler = lambda progress, total: progress ret, info = put_file(token, key, path, params, mime_type, progress_handler=progress_handler) return ret != None and ret['key'] == key if __name__ == '__main__': path = sys.argv[1] ret = upload_qiniu(path) if ret: name = os.path.split(path)[1] markdown_url = "" % (url, name) # make it to clipboard ahk = cdll.AutoHotkey # load AutoHotkey ahk.ahktextdll("") # start script in persistent mode (wait for action) while not ahk.ahkReady(): # Wait for AutoHotkey.dll to start time.sleep(0.01) ahk.ahkExec(u"clipboard = %s" % markdown_url.decode('gbk')) else: print "upload_failed" 編寫AutoHotkey腳本文件
markdown_picture.ahk
;將圖片上傳至七牛云,并獲得圖片地址
^!c::
send, ^c
clipwait
Run %comspec% /c "Python *替換成upload_qiniu.py文件的地址* %Clipboard%" /p
return
- 啟動(dòng)
markdown_picture.ahk文件之后,我們就可以使用ctrl+alt+c->ctr+v來插入圖片
- 選中一個(gè)圖片文件,按下
ctrl+alt+c,這時(shí)候會(huì)跳出cmd窗口,你不需要理會(huì)它,等該窗口自動(dòng)關(guān)閉之后,你就可以使用ctr+v獲得一條Markdown插入圖片的語句,就這么簡(jiǎn)單!!!- 你還可以給AutoHotkey腳本添加一個(gè)好看的圖標(biāo)喲,詳見我的Github
本地圖片最快貼圖方法
如果你不想使用這么麻煩的方法、只使用本地圖片的話,請(qǐng)務(wù)必要使用AutoHotkey,再結(jié)合我下面提供的AutoHotkey腳本,可以最快地插入本地圖片(上面的方法因?yàn)橐蟼鲌D片,所以獲得圖片鏈接會(huì)有些慢,取決于你的圖片大小和網(wǎng)絡(luò)狀況,當(dāng)然,你也可以將上傳圖片和獲得鏈接地址分開執(zhí)行,這樣速度也極快,具體方法自己可以去試試看)
在安裝好AutoHotkey之后,新建一個(gè)空白的txt文檔,然后粘貼下面的語句:
;將本地圖片插入Markdown
^!c::
send, ^c
clipwait
clipboard = 
return
將文檔的后綴改成ahk,最后雙擊該文件執(zhí)行該AutoHotkey腳本。這時(shí)候你就可以ctrl+alt+c -> alt+v來插入本地圖片。
該方法獲得的圖片語法對(duì)sublime text3中的Markdown preview插件是支持的,但對(duì)于其他的Markdown軟件可能是無效的,請(qǐng)自己做適當(dāng)?shù)男薷摹?/p>
結(jié)語
現(xiàn)在,你點(diǎn)擊一張本地圖片文件,然后按ctrl+alt+c,再ctr+v粘貼到Markdown文檔中,這是不是就是你想要的呢?
順便提一下,七牛云還有一個(gè)超級(jí)強(qiáng)大的功能,在鏈接后面添加后綴可控制圖片大小