此文主要分享瞭如何將自己博客園的文章自動導出到 Markdown 文檔進行存儲,以便在本地進行歸檔管理,程式中也對文章的分類、tag、代碼塊以及文章中的圖片進行了保存處理,以便上傳到自己的圖床。
此文主要分享瞭如何將自己博客園的文章自動導出到 Markdown 文檔進行存儲,以便在本地進行歸檔管理,程式中也對文章的分類、tag、代碼塊以及文章中的圖片進行了保存處理,以便上傳到自己的圖。
整理後的 Markdown 可以在本地整理成冊或者發佈到自己的個人博客上,比如我使用 Markdown 書寫的 個人博客 。
文章目錄
- 支持的功能
- 基本原理
- 幾個知識點
- 將 HTML 轉換成 Markdown
- 註意 Mac 和 Windows 以及 Linux 下的換行的區別
- 文章分類、tag 的獲取
- 文章中圖片保存
- 項目開源下載
1. 支持的功能
- 可以迴圈抓取自己博客園的所有文章導出到 Markdown 文件進行保存;
- 在 Markdown 的頭部保存了原文章的標題、發表時間、文章分類、文章 tag 元素;
- 文章中的代碼塊會抽取出來包含在
codeblock
中,你也可以修改源碼保存成其他的格式塊; - 保存的文件名就是原文章的路徑,如果你的文章都設置了
EntryName
,那生成的文件名就會非常的友好; - 文章中的圖片可選進行本地保存,命名的格式為源文件名,並可在原文中將鏈接進行圖床首碼的替換,你可以修改源碼按照自己的格式進行保存。
抓取保存後文件預覽。
2. 基本原理
- 迴圈抓取博客的列表,獲取到文章的鏈接;
- 迴圈文章的鏈接,進行抓取,提取元素;
- 保存抓取到的元素進行格式化並保存。
3. 幾個知識點
將 HTML 轉換成 Markdown
這裡使用了一個開源的組件 Html2Markdown ,在控制台安裝組件後就可以使用了,主要支持兩個方法。
對字元串進行轉換
var html = "Something to <strong>convert</strong>";
var converter = new Converter();
var markdown = converter.Convert(html);
對文件進行轉換
var path = "file.html";
var converter = new Converter();
var markdown = converter.ConvertFile(path);
註意 Mac 和 Windows 以及 Linux 下的換行的區別
具體的區別可以看這裡,可以根據自己的情況對源碼進行修改。
unix、windows、mac 的換行習慣
unix / linux:用 LF (\n) 表示一行結束。
mac:用 CR (\r) 表示一行結束。
windows:用 CR LF (\r\n) 和起來表示一行結束。
文章分類、tag 的獲取
分析後發現通過模擬請求 API 獲取即可,需要的參數通過正則匹配獲取,返回數據為 Unicode 進行轉碼提取。
文章中圖片保存
你可以修改源碼開啟或關閉此功能,使用文章中文件名作為保存到本地的文件名,並將文章中的圖片首碼進行了替換,你可以替換成你自己新的圖床地址。輸出的圖片文件在程式啟動的 images
文件夾。
4. 項目開源下載
項目源代碼在 GitHub
需要註意的問題是,項目中可能因為新舊文章中某些格式的變化導致抓取出來的 Markdown 格式可能稍有偏差,以及圖片、代碼塊的處理,你需要去根據自己的博客去進行對應的調整後使用。