部落格園自動釋出/更新部落格系統
阿新 • • 發佈:2019-07-04
一、cnblogs_automatic_blog_uploading
部落格園上傳部落格過於麻煩,怎麼辦,自動上傳/更新部落格來一套,簡單到網頁都不需要開啟,賬號密碼都不需要輸入,懶是唯一的生產力。
基於rpcxml協議,利用githook,在commit時自動釋出本地markdown文章到部落格園,如文章已釋出,則會更新。
二、專案地址
專案地址:https://github.com/nickchen121/cnblogs_automatic_blog_uploading
三、參考效果
參考效果:https://www.cnblogs.com/nickchen121/p/10718112.html
四、使用說明
本指令碼用python3.+
編寫,請配置好執行環境。
- 第一次使用前先把
./hooks/commit-msg
檔案複製到./.git/hooks/
中(如有則無需修改)。 - 執行
cnblogs.py
:- 程式有一個可選引數(如無特殊需求不要新增引數)。
config
設定部落格資訊。download
下載文章。
- 第一次執行
cnblogs.py
時預設選擇config
引數,設定部落格資訊,會生成一個blog_config.json
檔案(檔案內有部落格園賬號密碼,小心使用)。 - 此後每次執行程式時,
./articles/*.md
將被上傳到部落格併發布;./unpublished/*.md
將被上傳到部落格,但不釋出(並標註分類“unpublished”)。文章均以檔名為題,且不釋出的文章。如果部落格中已經存在同名文章,將替換其內容!
- 程式有一個可選引數(如無特殊需求不要新增引數)。
- 編輯
./articles/
,./unpublished/
中markdown檔案,在本地git倉庫commit
更改,自動執行./cnblogs.py
(需要使用終端命令才能檢視返回資訊)。
五、其他指令碼
5.1 md文件新增索引
自動給md文件新增索引,即:
# 一級標題
## 二級標題
變為
# 一、一級標題
## 1.1 二級標題
5.2 取出檔名序號
如果你的md檔案為01 第一篇md.md
/02 第一篇md.md
/03 第一篇md.md
,則會變成第一篇md.md
/第一篇md.md
/第一篇md.md
5.3 批量修改文件內容
選擇特定檔案目錄,批量修改檔案下檔案的內容,小心使用。
5.4 生成目錄
根據特定的字串,生成特定的目錄結構,可以參考:https://www.cnblogs.com/nickchen121/p/10718112.html
5.5 讀取title_postid檔案
部落格上傳成功後,會生成一個title_postid.json
檔案,裡面儲存了釋出成功檔案的資訊。
六、注意事項(已知Bug)
- 本程式不保證穩定性,為防止資料丟失,建議使用前預先備份部落格。
- clone倉庫不能下載
.git
資料夾,因此需要手動複製呼叫cnblogs.py
的指令碼./hooks/commit-msg
到.git
。 - 由於metaWeBlog本身沒有提供檢視文章是否已釋出的介面,所有使用“unpublished”分類標註未釋出文章。也就是說,當執行
python cnblogs.py download
命令時,部落格中沒有釋出也沒有“unpublished”分類的文章也會存到./articles/
,下次執行時將被自動釋出。 - 由於介面不允許將已經發布的文章設定為未釋出,所以若
./unpublished/
內的文章在部落格內有同名文章時不會被上傳。