Markdown
1. 前言
最近一直在使用 Markdown 寫文檔涨椒,但是其中貼圖真是太麻煩了摊鸡,于是就想著能不能有什么好的方法來解決,Google蚕冬,發(fā)現了網上已經有一些前輩寫好的教程了免猾,我主要參考了這兩篇博客的內容:
但是在直接使用時并不是那么一帆風順,遇到了各種不成功的情況囤热,然后我就自己調試猎提,摸索了一下,終于成功了∮遥現在將大概的過程記錄一下忧侧,希望能提供一下參考價值,不至于他人遇到同樣的坑牌芋。
2. 前期準備工具
1. python
推薦使用 python3.x
本人的python水平為初級入門蚓炬,在爬坑的過程中發(fā)現在Windows環(huán)境下 python2.x 對圖片路徑中含有中文的情況會報錯,還需要特別處理一下編碼問題躺屁。我Google了半天肯夏,沒有搞定(水平太次,請勿嘲笑)犀暑。然后使用 python3.x 版本發(fā)現可以很好的解決中文 路徑錯誤的問題驯击,所以就果斷使用了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要選擇和自己操作系統(tǒng)相匹配的版本广辰。
3. 七牛云賬號
實名認證后該平臺提供注冊用戶免費的10G空間暇矫;如果沒有認證,則有1G的免費空間可以使用择吊。
3. 具體實現
- 注冊七牛云賬號李根,獲得自己的
AK
、SK
几睛、空間名稱
以及域名地址
.
說明:
AK 和 SK 在七牛云的
個人中心
-->密鑰管理
中可以看到在
資源主頁
-->七牛官方資源
-->對象存儲
-->立即添加
就可以添加存儲空間完成空間添加后房轿,空間名稱 就是你填寫的空間的名稱
域名地址在你創(chuàng)建空間的
內容管理
可以看到外鏈默認域名-
安裝七牛云的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 環(huán)境下示例:
;將圖片上傳至七牛云,并獲得圖片地址 ^!c:: send, ^c clipwait Run %comspec% /c "python D:\program\qiniu-python-sdk\upload_qiniu.py %Clipboard%"
這里也稍微修改了參考文獻中的內容能曾,因為在我本地運行時原來的腳本執(zhí)行不成功度硝。
其中肿轨,第五行的“/k” 表示命令執(zhí)行完成之后,cmd窗口不消失蕊程,這樣可以方便調試椒袍,如果出錯了可以看到錯誤信息;如果希望窗口自動關閉藻茂,可以將這個參數設置為“/c”驹暑。
-
啟動
markdown_picture.ahk
后,我們就可以使用ctrl + alt + c
-->ctrl + v
來插入圖片了辨赐。選中一個圖片文件优俘,按下
ctrl + alt + c
,這時候會跳出cmd窗口掀序,如果沒有錯誤帆焕,你就可以使用ctr + v
來插入圖片的七牛云的網絡鏈接,就這么簡單!!!
[參考文獻]