1. 程式人生 > >部落格園自動釋出/更新部落格系統

部落格園自動釋出/更新部落格系統

一、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.+編寫,請配置好執行環境。

  1. 第一次使用前先把./hooks/commit-msg檔案複製到./.git/hooks/中(如有則無需修改)。
  2. 執行cnblogs.py
    1. 程式有一個可選引數(如無特殊需求不要新增引數)。
      • config 設定部落格資訊。
      • download 下載文章。
    2. 第一次執行cnblogs.py時預設選擇config引數,設定部落格資訊,會生成一個blog_config.json檔案(檔案內有部落格園賬號密碼,小心使用)。
    3. 此後每次執行程式時,./articles/*.md將被上傳到部落格併發布;./unpublished/*.md將被上傳到部落格,但不釋出(並標註分類“unpublished”)。文章均以檔名為題,且不釋出的文章。如果部落格中已經存在同名文章,將替換其內容!
  3. 編輯./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)

  1. 本程式不保證穩定性,為防止資料丟失,建議使用前預先備份部落格。
  2. clone倉庫不能下載.git資料夾,因此需要手動複製呼叫cnblogs.py的指令碼./hooks/commit-msg.git
  3. 由於metaWeBlog本身沒有提供檢視文章是否已釋出的介面,所有使用“unpublished”分類標註未釋出文章。也就是說,當執行python cnblogs.py download命令時,部落格中沒有釋出也沒有“unpublished”分類的文章也會存到./articles/,下次執行時將被自動釋出。
  4. 由於介面不允許將已經發布的文章設定為未釋出,所以若./unpublished/內的文章在部落格內有同名文章時不會被上傳。