利用apidoc在注釋里寫API文檔一文提到過,如果有需求就把文檔發布到github pages上,這樣子大家開發方便些。
但是,我們都不喜歡干重復的事情,每次我們生成或者編寫好文檔之后都需要重復的去運行那幾行相同的代碼將文檔更新到github pages?所以,寫了一個shell腳本文件,來自動的將文檔更新。
注意:這里的腳本只針對前文提到的利用apidoc編寫注釋文檔有效,如果是有不一樣的需求的話,可能需要對腳本進行對應的修改才生效。
工作原理
這里實現的原理其實很簡單:
- 先將整個項目克隆下來;
- 新建一個獨立的分支
gh-pages
; - 進入項目,安裝相對應的依賴(這里是
gulp
跟gulp-apidoc
); - 執行生成文檔的命令(
gulp apidoc
); - 利用
git rm
刪除無關的文件; - commit并上傳到github;
腳本內容
為了方便起見,這里是直接使用ssh協議的,所以在執行該腳本的時候注意你使用的帳戶是否已經配置好了相應的key。
#!/bin/bash -e
# 配置參數
ORIGIN_URL="your_git_repository_url"
LOCAL_DIR="local_dir_name"
TASK_NAME="gulp_task_name"
API_DOC="api_doc_file_name"
# 克隆遠程庫
git clone $ORIGIN_URL
cd $LOCAL_DIR
# 切換到獨立的gh-pages分支
git checkout --orphan gh-pages
# 安裝依賴
npm install gulp gulp-apidoc
# 生成/更新apidoc文件
gulp $TASK_NAME
# 刪除除了.gitignore的內容
git rm -rf -q .
# 復制文檔的內容到根目錄
mv $API_DOC/* .
# 刪除文檔文件夾
rm -rf $API_DOC
# 刪除node_modules
rm -rf node_modules
# 上傳文檔到github
git add -A .
git commit -am 'seed gh-pages'
git push -u origin gh-pages --force
# 退出并刪除
cd ..
rm -rf $LOCAL_DIR
上傳完畢之后,別忘了在你的github項目的設置里邊修改github pages的源(source)為gh-pages branch
。
要是想看具體一點的例子的話,可以查看express-example這個例子。