上傳Markdown文件內的本地圖片至博客園


上傳Markdown文件內的本地圖片至博客園

因為習慣使用Markdown格式做筆記,有時希望將它放到網上方便在任何有網絡的地方查找。開始是放到Github中的,但是有時訪問的速度太慢了所以准備將筆記放到博客園中,這樣訪問速度就快了。

但是使用Markdown寫的文件中時不時會有幾張圖片,上傳筆記的時候還要一個一個的去本地找照片,再上傳到博客園上。如果說一兩張圖片還好,但是圖片多了,這樣重復無聊的動作就會讓人煩躁,因此便產生了編寫能自動上傳Markdown中的本地圖片,並自動改掉文章中的鏈接的程序的想法

上傳圖片需要賬號信息,但只知道賬號密碼沒啥用,因為不知道上傳圖片的API接口,而偶然的機會知道了Electron,它可以用HTML,CSS和JavaScript來構建跨平台桌面應用程序的一個開源庫。 Electron通過將Chromium和Node.js合並到同一個運行時環境中,並將其打包為Mac,Windows和Linux系統下的應用來實現這一目的。

也就是說只要用Eletron編寫的程序,然后用它登錄賬號,程序就能存儲其session,再使用ajax上傳圖片,這樣就能自動附帶上用戶的session,然后就能上傳圖片了。額大概就這意思,反正我是這么理解的,使用說明如下

程序界面

程序界面如下,仿照PS做的

image-20200219175009941

登陸賬號

然后登錄一下賬號,這個是加載博客園的登錄頁面的,絕對放心,不會盜取密碼的。

image-20200219175225531

拖拽MD文件

把md文件拖到左邊虛線框內

image-20200219175644453

拖拽圖片文件

找到存放圖片的位置,ctrl+a全部復制,不管圖片是不是在文章中引用過,程序會自動剔除多余的圖片。要注意的是這個是根據正則表達式判斷的,我只寫了![]()類型的,還有種格式<img src>大概長這樣的類型並沒用考慮。底下有可上傳圖片的數量,左邊虛線框有圖片的樣子,可以判斷上傳是否有誤。

image-20200219175919787

還有需要注意的地方,圖片的位置只能是相對路徑,否則不能上傳成功。如果你使用的是Typora文本編輯器的話可以在偏好設置里調節,為保證成功上傳,設置成如下圖所示就行了。這樣當我們拖動一個文件到Typora文本編輯器里時,軟件會自動復制圖像到指定的相對路徑中。

image-20200315152828882

解析上傳

最后點擊解析上傳就行,程序會將本地地址替換為鏈接,並輸出為一個副本,不用擔心對之前的文本有損傷

演示

GIF

image-20200219181905440

成功后會產生一個副本,不會對之前的筆記產生影響,現在對比一下內容

image-20200219182217527

鏈接就被替換掉了。

然后將整個文章復制,粘貼到博客園筆記編寫處,就行了

還有使用這個軟件登錄賬號好像會擠掉你自己在瀏覽器中登錄的賬號,所以方便點,當你解析好自己的筆記后,再點擊一下登錄賬號按鈕,這時他會提醒你已近登錄過了

image-20200219182819549

然后返回就行,這時就會回到博客園首頁,在這里同樣可以上傳自己的筆記

image-20200219182841932

源碼與程序

程序藍奏雲鏈接: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獲取

  1. 先按F12打開開發者設置,然后找到Network那一項,選中它
  2. 隨便訪問一個博客園里的頁面

image-20200509092038787

  1. 比我自己的這個博客hemou/,點擊一下它
  2. headers -> request headers -> cookie,把cookie對應的這一大坨東西全部復制下來

image-20200509092233518

  1. 替換掉上面代碼中的xxx

Typora配置

文件 -> 偏好設置 -> 圖像

image-20200509091523078

自定義命令的內容為 python [自定義命令文件的位置]

最后想上傳圖片的時候,再右擊圖片即可上傳了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM