記錄下gitbook
介紹
GitBook是一個基於Node.js的命令行工具,可使用Git和Markdown來編寫文檔。
總結幾點:
- 多人協作管理文檔
- 文件服務
- book發佈
- markdown編寫閱讀舒暢
- 個人或組織博客
- git管理
- …
官網:https://www.gitbook.com/
部署
安裝Node.js
wget https://nodejs.org/dist/v12.18.0/node-v12.18.0-linux-x64.tar.xz
xz -d node-v12.18.0-linux-x64.tar.xz
tar xvf node-v12.18.0-linux-x64.tar -C /opt/module/
cd /opt/module
vi /etc/profile
增加如下:
# NODE.JS HOME
export NODE_HOME=/opt/module/node-v12.18.0-linux-x64
export PATH=$NODE_HOME/bin:$PATH
[root@bigdata01 module]# source /etc/profile
[root@bigdata01 module]# node -v
v12.18.0
以上是已經編譯好源碼的安裝方式,也可以自己編譯再安裝,參考:https://www.runoob.com/nodejs/nodejs-install-setup.html
安裝gitbook
-
也可參考:https://github.com/GitbookIO/gitbook/blob/master/docs/setup.md
-
npm安裝
gitbook-cli 是用於安裝、使用多個不同版本GitBook的工具。使用GitBook時會自動安裝需要的版本,比如:“gitbook -V”。
[root@bigdata01 module]# npm install gitbook-cli -g /opt/module/node-v12.18.0-linux-x64/bin/gitbook -> /opt/module/node-v12.18.0-linux-x64/lib/node_modules/gitbook-cli/bin/gitbook.js + [email protected] added 578 packages from 672 contributors in 8.619s
如果一直卡着:
fetchMetadata: sill resolveWithNewModule [email protected] checking installable status
解決方案:
清除緩存,換成taobao源 npm cache clean npm config set registry https://registry.npm.taobao.org
使用
- git倉庫創建一個項目
隨便碼雲、github、gitlab創建完成後clone到本地
若linux上沒有git,安裝一個:yum -y install git
創建項目的目的僅僅爲Markdown文件的版本控制,不是必須選項,本地直接建立目錄也是可以的。
- 初始化
[root@bigdata01 data]# ll
total 4
drwxr-xr-x 3 root root 4096 Jun 9 01:32 wiki.mym
[root@bigdata01 data]# gitbook init wiki.mym
Installing GitBook 3.2.3
[email protected] ../../tmp/tmp-5745uqFCMB4aouVk/node_modules/gitbook
├── [email protected]
├── [email protected]
.....
git init之後會生成一個專門用來編寫目錄結構的文件SUMMARY.md記得git提交,不然你在其他地方就看不到這個文件,當然你要在其他地方重新建立這個文件也是可以的
- 開啓服務
[root@bigdata01 data]# cd wiki.mym/
[root@bigdata01 wiki.mym]# ls
LICENSE README.en.md README.md SUMMARY.md
[root@bigdata01 wiki.mym]# gitbook server
Error: Command server doesn't exist, run "gitbook help" to list commands.
[root@bigdata01 wiki.mym]# gitbook serve
Live reload server started on port: 35729
Press CTRL+C to quit ...
info: 7 plugins are installed
info: loading plugin "livereload"... OK
info: loading plugin "highlight"... OK
info: loading plugin "search"... OK
info: loading plugin "lunr"... OK
info: loading plugin "sharing"... OK
info: loading plugin "fontsettings"... OK
info: loading plugin "theme-default"... OK
info: found 1 pages
info: found 3 asset files
info: >> generation finished with success in 0.4s !
Starting server ...
Serving book on http://localhost:4000
此時可以去訪問這個連接通過瀏覽器訪問你的book了
-
修改端口:gitbook serve --port XXXX
-
服務後臺啓動
[root@bigdata01 opt]# mkdir -p /opt/logs/gitbook
[root@bigdata01 wiki.mym]# nohup gitbook serve --port 14001 >> /opt/logs/gitbook/wiki.mym.log 2>&1 &
[1] 6274
[root@bigdata01 wiki.mym]# ps -ef | grep gitbook
root 6274 3075 12 01:41 pts/0 00:00:02 node /opt/module/node-v12.18.0-linux-x64/bin/gitbook serve
- 定時Cron pull master
腳本:vim /opt/data/shell/wiki.mym.build.sh
注意,sleep 15,是因爲build需要時間
#!/bin/bash
cd /opt/data/wiki.mym/
git pull origin master
sleep 15
gitbook build
curTime=$(date "+%Y-%m-%d %H:%M:%S")
echo 'git pull and build over!'
echo $curTime
exit 0
賦予執行權限
chmod +777 /opt/data/shell/wiki.mym.build.sh
測試腳本
[root@bigdata01 shell]# sh wiki.mym.build.sh
From https://gitee.com/maoyuanming/wiki.mym
* branch master -> FETCH_HEAD
Already up-to-date.
info: 7 plugins are installed
info: 6 explicitly listed
info: loading plugin "highlight"... OK
info: loading plugin "search"... OK
info: loading plugin "lunr"... OK
info: loading plugin "sharing"... OK
info: loading plugin "fontsettings"... OK
info: loading plugin "theme-default"... OK
info: found 1 pages
info: found 3 asset files
info: >> generation finished with success in 0.4s !
git pull and build over!
2020-06-09 01:57:47
配置crontab
crontab -e
進行編寫,內容如下。每5分鐘執行一次
[root@bigdata01 shell]# crontab -l
# wiki.mym.gitbook crontab git pull
*/5 * * * * sh /opt/data/shell/wiki.mym.build.sh
配置說明
-
[root@bigdata01 wiki.mym]# tree . ├── _book │ ├── gitbook │ │ ├── fonts │ │ │ └── fontawesome │ │ │ ├── FontAwesome.otf │ │ │ ├── fontawesome-webfont.eot │ │ │ ├── fontawesome-webfont.svg │ │ │ ├── fontawesome-webfont.ttf │ │ │ ├── fontawesome-webfont.woff │ │ │ └── fontawesome-webfont.woff2 │ │ ├── gitbook.js │ │ ├── gitbook-plugin-fontsettings │ │ │ ├── fontsettings.js │ │ │ └── website.css │ │ ├── gitbook-plugin-highlight │ │ │ ├── ebook.css │ │ │ └── website.css │ │ ├── gitbook-plugin-lunr │ │ │ ├── lunr.min.js │ │ │ └── search-lunr.js │ │ ├── gitbook-plugin-search │ │ │ ├── lunr.min.js │ │ │ ├── search.css │ │ │ ├── search-engine.js │ │ │ └── search.js │ │ ├── gitbook-plugin-sharing │ │ │ └── buttons.js │ │ ├── images │ │ │ ├── apple-touch-icon-precomposed-152.png │ │ │ └── favicon.ico │ │ ├── style.css │ │ └── theme.js │ ├── index.html │ ├── LICENSE │ ├── README.en.md │ └── search_index.json ├── LICENSE ├── README.en.md ├── README.md └── SUMMARY.md
-
_book是gitbook的一些展示靜態配置(css等一些)
-
SUMMARY.md是編寫目錄的地方,必須存在
-
其他文件都是git倉庫自己的文件
-
book.json是gitbook服務的插件配置文件,可選,需要自己創建
插件配置
配置文件的變更可能會導致GitBook進程重啓或異常終止,如上述插件配置調整,如果相應的插件沒有安裝完成,就會導致進程終止,需要安裝完成之後,再重新啓動。
安裝插件 gitbook install
包含但不限於如下常用插件 gitbook官網插件:https://plugins.gitbook.com/
插件名 | 說明 |
---|---|
expandable-chapters-small | 章節導航支持多層目錄,並配置箭頭圖標,點擊箭頭才能實現收放目錄。 |
search-plus | 高級搜索,支持中文,使用此插件,需要將默認的 lunr 和 search禁用掉,即“-lunr”和“-search”。 |
sharing | 分享插件,默認開啓,禁用。 |
splitter | 擴展導航側邊欄,支持寬度可調節。 |
anchor-navigation-ex-toc | 爲文章增加錨點目錄欄及回到頂部功能。 |
hide-element | 隱藏元素,如:“Published with GitBook”。 |
insert-logo | 左側導航欄上方插入Logo。 |
vim book.json
{
"plugins": [
"expandable-chapters-small",
"-lunr",
"-search",
"search-plus",
"-sharing",
"splitter",
"anchor-navigation-ex-toc",
"hide-element",
"insert-logo",
"code"
],
"pluginsConfig": {
"hide-element": {
"elements": [".gitbook-link"]
},
"insert-logo": {
"url": "/images/dip.png",
"style": "background: none; max-height: 120px; min-height: 120px"
}
}
}
執行gitbook install
GitBook Editor編寫
使用gitbook Editor進行編寫(當然其他md編寫工具也可以)
-
下載地址:百度下下載即可
-
網盤下載:
鏈接:https://pan.baidu.com/s/1ZdDsVGtTK0EkEfZpJ2H6ag
提取碼:tash
- 安裝直接運行.exe文件很快安裝完
- 安裝完桌面可找到GitBook Editor打開
- 打開後 GitBook Editor -> open --> 選擇git clone下來的倉庫目錄即可
- 界面很簡潔,TABLE OF CONTENTS 是預覽界面。可以直接在某個頁面進行修改
- FILES是文件展示的頁面,進行目錄結構或新建文件時可在此處處理
創建文件夾或目錄
一般以一個目錄對應一個文件夾,可以層層建立。
新建文件夾後,每個文件夾內部必須存在一個README.md文件,可以不編寫內容,但是建議簡單描述下這個目錄
編寫目錄
目錄的編寫是在SUMMARY.md裏編寫。若不存在則進行創建一個。
目錄編寫方式參考:http://gitbook.hushuang.me/pages.html
編寫總的來說就是個規劃目錄層級、使用無序列表、然後給上超鏈接的過程
git push/pull
編寫完成時提交可以通過git工具進行提交,或者直接在gitbook Editor裏進行提交
左上角工具欄book菜單項可找到git push/pull/sync等操作