上傳Markdown文件內的本地圖片至博客園
因為習慣使用Markdown格式做筆記,有時希望將它放到網上方便在任何有網絡的地方查找。開始是放到Github中的,但是有時訪問的速度太慢了所以准備將筆記放到博客園中,這樣訪問速度就快了。
但是使用Markdown寫的文件中時不時會有幾張圖片,上傳筆記的時候還要一個一個的去本地找照片,再上傳到博客園上。如果說一兩張圖片還好,但是圖片多了,這樣重復無聊的動作就會讓人煩躁,因此便產生了編寫能自動上傳Markdown中的本地圖片,並自動改掉文章中的鏈接的程序的想法
上傳圖片需要賬號信息,但只知道賬號密碼沒啥用,因為不知道上傳圖片的API接口,而偶然的機會知道了Electron,它可以用HTML,CSS和JavaScript來構建跨平台桌面應用程序的一個開源庫。 Electron通過將Chromium和Node.js合並到同一個運行時環境中,並將其打包為Mac,Windows和Linux系統下的應用來實現這一目的。
也就是說只要用Eletron編寫的程序,然后用它登錄賬號,程序就能存儲其session,再使用ajax上傳圖片,這樣就能自動附帶上用戶的session,然后就能上傳圖片了。額大概就這意思,反正我是這么理解的,使用說明如下
程序界面
程序界面如下,仿照PS做的
登陸賬號
然后登錄一下賬號,這個是加載博客園的登錄頁面的,絕對放心,不會盜取密碼的。
拖拽MD文件
把md文件拖到左邊虛線框內
拖拽圖片文件
找到存放圖片的位置,ctrl+a全部復制,不管圖片是不是在文章中引用過,程序會自動剔除多余的圖片。要注意的是這個是根據正則表達式判斷的,我只寫了![]()
類型的,還有種格式<img src>
大概長這樣的類型並沒用考慮。底下有可上傳圖片的數量,左邊虛線框有圖片的樣子,可以判斷上傳是否有誤。
還有需要注意的地方,圖片的位置只能是相對路徑,否則不能上傳成功。如果你使用的是Typora文本編輯器的話可以在偏好設置里調節,為保證成功上傳,設置成如下圖所示就行了。這樣當我們拖動一個文件到Typora文本編輯器里時,軟件會自動復制圖像到指定的相對路徑中。
解析上傳
最后點擊解析上傳就行,程序會將本地地址替換為鏈接,並輸出為一個副本,不用擔心對之前的文本有損傷
演示
成功后會產生一個副本,不會對之前的筆記產生影響,現在對比一下內容
鏈接就被替換掉了。
然后將整個文章復制,粘貼到博客園筆記編寫處,就行了
還有使用這個軟件登錄賬號好像會擠掉你自己在瀏覽器中登錄的賬號,所以方便點,當你解析好自己的筆記后,再點擊一下登錄賬號按鈕,這時他會提醒你已近登錄過了
然后返回就行,這時就會回到博客園首頁,在這里同樣可以上傳自己的筆記
源碼與程序
程序藍奏雲鏈接:https://hemou.lanzoui.com/iiaRIlecxgb
源碼Github地址:https://github.com/HeMOua/cnblogsUpload
若有發現bug的道友可以留言提醒我一下,感謝
使用Typora自定義上傳服務設置
看了一下沉雲道友的評論,Typora還真可以上傳圖片,所以說我這玩意算是白寫了😒,不過使用這種方式必須提前安裝Python
自定義命令
參考了一下沉雲道友的代碼
import requests
import json
from sys import argv
uploadUrl = 'https://upload.cnblogs.com/imageuploader/processupload?host=www.cnblogs.com'
headers = {
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36",
"cookie": "xxx" # 自己的cookie
}
# 類型映射
mimeMapping = {".png": 'image/png', '.gif': 'image/gif', '.jpg': 'image/jpeg', '.jpeg': 'image/jpeg'}
for i in argv[1:]:
# 圖片地址參數
imgPath = i
# 對應的mime
mime = imgPath[imgPath.rindex("."):]
file = [
("",("fileName", open(imgPath, "rb"), mimeMapping[mime]))
]
response = requests.post(uploadUrl,headers = headers,files = file)
data = json.loads(response.text)
print(data['message'])
寫完后保存為1.py或其他名字
Cookie獲取
- 先按F12打開開發者設置,然后找到Network那一項,選中它
- 隨便訪問一個博客園里的頁面
- 比我自己的這個博客
hemou/
,點擊一下它 - headers -> request headers -> cookie,把cookie對應的這一大坨東西全部復制下來
- 替換掉上面代碼中的
xxx
Typora配置
文件 -> 偏好設置 -> 圖像
自定義命令的內容為 python [自定義命令文件的位置]
最后想上傳圖片的時候,再右擊圖片即可上傳了