1. 基本安裝和使用
前提是已經安裝了Node和Git環境,然後安裝GitBook:
npm install -g gitbook-cli
然後在寫作的時候(比如寫一本叫做Jenkins入門
),可以在指定的目錄下,先創建一個Jenkins入門
文件夾,然後初始化:
# 進入創建的空文件夾
cd Jenkins入門
# 初始化
gitbook init
然後回到Jenkins入門
文件夾,看到gitbook已經自動幫我們生成了 README.md 和 SUMMARY.md 兩個Markdown文件,前者 README.md 和git中一樣,用於寫些項目介紹(這裏就是寫些書本介紹信息),至於後者的 SUMMARY.md 文件是用於羅列書本目錄的,後面gitbook會幫我們自動依據這個文件中的目錄信息生成對應的文件和文件夾,比如寫成下面這樣:
# Summary 目錄
* [介紹](README.md)
* [第一章](第一章/README.md)
* [第一節:導覽](第一章/第1節--啓航.md)
* [第二節:創建第一個管道](第一章/第2節--創建第一個管道.md)
* [第二章](第二章/README.md)
* [第一節:總覽](第二章/第1節--總覽.md)
然後進入到Jenkins入門
文件夾再用gitbook init
初始化一下,gitBook會依據上述的目錄結構幫我創建好文件夾和文件,結構如下:
然後可以在已有的目錄結構和文件中進行創作,創作完後,可以使用gitbook serve
命令進行在線發佈預覽,比如:
# 發佈並指定端口號
gitbook serve --port=4000
然後訪問4000端口,效果如下:
這裏的頁面渲染主要是由 Node.js 提供的,除了這種在線發佈外,還可以直接使用gitbook build [gitbook創建源書目錄] [構建本地書籍的輸出路徑]
命令來構建本地書籍,比如:
gitbook build . F:\我的第一本書
默認是生成HTML格式的書籍,當然也可以生成其他格式的書籍,比如生成pdf(還需要安裝ebook-convert):gitbook pdf . F:\我的第一本PDF書
,但建議不要搞得像我這裏名字搞得這麼奇葩不一致。
2. 版本控制
這裏使用git作版本控制和我們普通工程下使用git控制一樣,簡單說一下,進入在源書本的根目錄
# 初始化本地倉庫
git init
此外,利用GitBook Editor工具可以直接進行即時可見的編輯(需要註冊賬戶,我死活註冊不了),
注:所有內容在githup上,具體參見GitBook
嘗試結合Jenkins完成gitbook的發送到遠程服務器自動化部署,未成功(一直提示無法識別gitbook
命令),測試過的方案如下:
1.配置軟件的環境(無效)
ln -s /usr/local/node-v10.14.2-linux-x64/bin/node /usr/local/bin/node
ln -s /usr/local/node-v10.14.2-linux-x64/bin/npm /usr/local/bin/npm
ln -s /usr/local/node-v10.14.2-linux-x64/bin/gitbook /usr/local/bin/gitbook
2.手動添加環境變量(無效)
vim /etc/profile
# 添加Node環境
export NODE_HOME=/usr/local/node-v10.14.2-linux-x64/bin
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$NODE_HOME/bin:$PATH
3.在Jenkins全局環境中添加環境(無效)
在Linux中查看$PATH
變量:echo $PATH
,然後將出現的字符串複製,粘貼到:系統管理–>系統設置–>Global properties–>環境變量–>Add–>Name爲PATH
,Value爲剛剛複製的內容,無效。
4.手動調用環境變量(無效)
在配置任務的“執行Shell”時,在shell命令上方加上#!/bin/bash -il
,無效,諸如:
#!/bin/bash -il
gitbook build /usr/local/test/Jenkins入門
gitbook serve /usr/local/test/Jenkins入門 --port=4000
後來嘗試了一下,在Jenkins所在機器A上做了同樣的配置,不上傳到遠程機器B,只在A上進行簡單的執行腳本,可以部署,簡單代碼如下:
cp -r /root/.jenkins/workspace/localhost-gitbook/抽離的知識點/GitBook/Jenkins入門 /usr/local/test/
cd /usr/local/test/Jenkins入門
gitbook init
gitbook serve --port=4000
但通過SSH上傳到B上就不行(B上也配置了A的環境),最終解決方案:後來發現執行的shell不放在在SSH Publishers中的Eexc command中即可,build中再加一個“執行shell”即可,然後直接寫:
cd /usr/local//test/Jenkins入門/
gitbook init
# 將運行日誌重定向到 Jenkins入門.out 文件中
nohup gitbook serve --port=4000 &> Jenkins入門.out
詳細如下: