前言
Markdown作為現在比較流行的寫作工具(準確地說是標記語言),已被越來越多的人使用,很多主流的博客網站或寫作平臺都支持這種寫作工具(比如,我最喜歡的簡書),但是Markdown中的貼圖方法有些麻煩,因為Markdown是純文本工具,它不能像Word那樣通過插入的方式內嵌進去,盡管有些Markdwon軟件提供類似地插入功能,但是一旦本地圖片移動到別的位置,圖片也無法顯示,而且不同地Markdown軟件對本地圖片的語法也有所區別,所以最可靠的辦法還是上傳到圖床上,通過圖床提供的圖片鏈接來插入圖片。但是,通過這種方式,你最少也需要三步:上傳圖片 -> 獲得鏈接 -> 粘貼鏈接,再加上你還要打開瀏覽器,在各種軟件之間切換,這種方式的效率極低,那有沒有一種類似ctrl+c
-> ctrl+v
的方式呢?當然有,下面我就來告訴你。
如果你使用的是Mac的話,請參考這篇文章上提供的方法-簡化markdown寫作中的貼圖流程;如果你使用的是Windows的話,請使用我下面介紹的方法。
前期工具準備
- Python(世界上最強大的腳本語言)
說到這里我不得不承認,要使用這種方法的話,你可能要會一點Python,至少要安裝了Python
- AutoHotkey(Windows上最方便的腳本語言)+AutoHotkey.dll
AutoHotkey.dll是用來實現其他腳本語言對AutoHotkey的調用,你需要下載對應于AutoHotKey版本的dll文件,然后將它放到windows/System32文件夾中
[AutoHotkey.dll]下載地址(https://github.com/xzonepiece/markdown-img-upload-windows/tree/master/Autohotkey.dll)
- 七牛云賬號(該平臺提供注冊用戶免費的10G空間)
但是,如果你只使用本地圖片的話,我告訴你一種插入本地圖片全宇宙最快的方法,只需要安裝AutoHotkey即可,具體方法往下翻
具體實現方法
注冊七牛云賬號,獲得自己的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
- 啟動
markdown_picture.ahk
文件之后,我們就可以使用ctrl+alt+c
->ctr+v
來插入圖片
- 選中一個圖片文件,按下
ctrl+alt+c
,這時候會跳出cmd窗口,你不需要理會它,等該窗口自動關閉之后,你就可以使用ctr+v
獲得一條Markdown插入圖片的語句,就這么簡單!!!- 你還可以給AutoHotkey腳本添加一個好看的圖標喲,詳見我的Github
本地圖片最快貼圖方法
如果你不想使用這么麻煩的方法、只使用本地圖片的話,請務必要使用AutoHotkey,再結合我下面提供的AutoHotkey腳本,可以最快地插入本地圖片(上面的方法因為要上傳圖片,所以獲得圖片鏈接會有些慢,取決于你的圖片大小和網絡狀況,當然,你也可以將上傳圖片和獲得鏈接地址分開執行,這樣速度也極快,具體方法自己可以去試試看)
在安裝好AutoHotkey之后,新建一個空白的txt文檔,然后粘貼下面的語句:
;將本地圖片插入Markdown
^!c::
send, ^c
clipwait
clipboard = 
return
將文檔的后綴改成ahk,最后雙擊該文件執行該AutoHotkey腳本。這時候你就可以ctrl+alt+c
-> alt+v
來插入本地圖片。
該方法獲得的圖片語法對sublime text3中的Markdown preview插件是支持的,但對于其他的Markdown軟件可能是無效的,請自己做適當的修改。
結語
現在,你點擊一張本地圖片文件,然后按ctrl+alt+c
,再ctr+v
粘貼到Markdown文檔中,這是不是就是你想要的呢?
順便提一下,七牛云還有一個超級強大的功能,在鏈接后面添加后綴可控制圖片大小