1. 目標
在將Markdown格式的文檔導入博客或其他網站時,本地圖片無法直接導入,需要使用互聯網可以訪問的圖片。
通過以下方法,可以使用Markdown文檔中引用的圖片批量上傳至互聯網。
2. 使用GitHub+jsDelivr作爲免費圖牀
可以使用GitHub+jsDelivr作爲免費圖牀,先將圖片上傳至GitHub的公共項目,再使用jsDelivr的CDN鏈接訪問圖片,最後替換Markdown引用的圖片地址。
3. GitHub操作步驟
在GitHub中創建一個Public倉庫,如下所示。
將創建的倉庫克隆到本地,可使用TortoiseGit作爲Git客戶端,可參考 “TortoiseGit IDEA等配置Git服務器SSH密鑰” https://blog.csdn.net/a82514921/article/details/104661707 。
在本地將Markdown中引用的圖片按目錄保存好,提交至GitHub中,提交完畢後如下所示。
在GitHub中對上述倉庫創建release,如下所示。
沒有創建release時的界面:
已經創建過release時的界面:
指定版本號併發布,當提交了新的內容後,需要使用新的版本號(或刪除倉庫後創建同名倉庫繼續使用舊的版本號)。
4. 檢查jsDelivr的CDN鏈接內容
查看 https://www.jsdelivr.com/?docs=gh ,通過jsDelivr訪問GitHub資源的URL格式如下:
// load any GitHub release, commit, or branch
// note: we recommend using npm for projects that support it
https://cdn.jsdelivr.net/gh/user/repo@version/file
如果直接訪問 https://cdn.jsdelivr.net/gh/ ,會提示 “ Invalid URL. The URL structure is /gh/user/repo@version/file.js ”。
以上URL需要進行以下替換:
參數 | 說明 |
---|---|
https://cdn.jsdelivr.net/gh | 固定URL |
user | GitHub用戶名 |
repo | GitHub倉庫名 |
version | GitHub倉庫發佈的release版本號 |
file | GitHub倉庫中的文件路徑 |
可以打開 https://cdn.jsdelivr.net/gh/user/repo@version/ 鏈接(最後的“/”不能省略),會顯示當前relase對應的文件信息,示例如下 。
如果無法正常訪問,需要等待一段時間,使jsDelivr對應GitHub的CDN鏈接可用。
5. 替換Markdown引用的圖片地址
假如在Markdown中通過“[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-YD7uYOUf-1583417166969)(pic/xx.jpg)]”的形式引用圖片,可將目錄名替換爲jsDelivr的CDN中對應目錄的地址。
完成以上操作後,可在CSDN等博客,或其他網站上傳Markdown文件,其中引用的圖片會被批量獲取。
也可當作免費圖牀使用。
6. 爲什麼不直接使用GitHub或Gitee
若直接使用GitHub中的倉庫的資源文件的raw形式,在CSDN中上傳時,CSDN後臺服務器無法獲取到圖片內容。
不直接使用GitHub或Gitee
若直接使用GitHub中的倉庫的資源文件的raw形式,在CSDN中上傳時,CSDN後臺服務器無法獲取到圖片內容。
使用Gitee中的倉庫的資源文件的raw形式,在CSDN中上傳時,CSDN後臺服務器可以獲取到圖片內容,但存在使用頻率限制。