一、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/
內的文章在博客內有同名文章時不會被上傳。