
[TOC]
gitbook
環(huán)境搭建
nodejs
官網(wǎng)下載,這里可以選擇12.16.1版本,太新的版本后面可能會(huì)出現(xiàn)奇怪的問題,這是筆者使用的版本
執(zhí)行以下命令安裝gitbook命令
npm install -g gitbook-cli
# 查看是否安裝完成, 能正確顯示版本號(hào)就行,這里推薦gitBook==3.2.3
gitbook -V
CLI version: 2.3.2
GitBook version: 3.2.3
初始化電子書
初始化電子書
gitbook init

這時(shí)候會(huì)生成下面兩個(gè)文件README.md和SUMMARY.md
README.md 書籍的介紹寫在這個(gè)文件里;SUMMARY.md書籍的目錄結(jié)構(gòu)在這里配置
安裝插件
有配置book.json時(shí),執(zhí)行gitbook install會(huì)安裝插件到node_modules目錄
使用以下命令啟動(dòng)gitbook,打開http://localhost:4000就可以訪問了,
gitbook serve

重要文件
book.json,沒有的話,自己新建一個(gè)就好
用于配置插件和書籍的基本信息
{
"title": "書籍目錄",
"author": "narutohyc",
"description": "書籍目錄,記錄一些工作和學(xué)習(xí)中的筆記",
"language": "zh-hans",
"structure": {
"readme": "README.md"
},
"links": {
"sidebar": {
"我の小窩~": "https://github.com/narutohyc"
}
},
"plugins": [
"-sharing",
"splitter",
"expandable-chapters-small",
"anchors",
"github",
"github-buttons",
"donate",
"sharing-plus",
"anchor-navigation-ex",
"mathjax",
"mermaid-gb3",
"tbfed-pagefooter",
"code",
"search-plus", "-lunr", "-search",
"lightbox",
"theme-comscore",
"valine",
"pageview-count",
"favicon-absolute",
"copyright-v"
],
"pluginsConfig": {
"theme-default": {
"showLevel": true
},
"github": {
"url": "https://github.com/narutohyc"
},
"tbfed-pagefooter": {
"copyright": "Copyright ? narutohyc.com 2021",
"modify_label": "該文件修訂時(shí)間:",
"modify_format": "YYYY-MM-DD HH:mm:ss"
},
"github-buttons": {
"buttons": [{
"user": "narutohyc",
"repo": "bk_index",
"type": "star",
"size": "small",
"count": true
}
]
},
"donate": {
"wechat": "https://s2.loli.net/2022/03/23/WDiTVSamQBJdEA4.png",
"alipay": "https://s2.loli.net/2022/03/23/dEYjkaSGXwe7rnu.png",
"title": "",
"button": "歡迎打賞",
"alipayText": "alipay打賞",
"wechatText": "wechat打賞"
},
"sharing": {
"douban": true,
"facebook": true,
"google": true,
"hatenaBookmark": false,
"instapaper": false,
"line": false,
"linkedin": false,
"messenger": false,
"pocket": false,
"qq": true,
"qzone": true,
"stumbleupon": false,
"twitter": true,
"viber": false,
"vk": false,
"weibo": true,
"whatsapp": false,
"all": [
"google", "facebook", "weibo", "twitter",
"qq", "qzone", "linkedin", "pocket"
]
},
"anchor-navigation-ex": {
"showLevel": false
},
"valine": {
"appId": "leancloud申請(qǐng)的appId",
"appKey": "leancloud申請(qǐng)的appKey",
"avatar": "wavatar",
"placeholder": "歡迎留下評(píng)論交流~",
"pageSize": 15
},
"favicon-absolute":{
"favicon": "./chapters/res/other/favicon.ico",
"appleTouchIconPrecomposed152": "./chapters/res/other/favicon.ico"
},
"fontSettings": {
"family": "msyh",
"size": 2
},
"copyright-v": {
"site": "https://hycbook.github.io/bk_python/",
"author": "narutohyc",
"website": "python元知識(shí)驛站",
"image": "https://s2.loli.net/2022/03/24/pbMd1BCgUNzi7mG.png",
"copyProtect": true,
"enableFooter": false
}
}
}
Gitbook 默認(rèn)帶有 5 個(gè)插件:
- highlight
- search
- sharing
- font-settings
- livereload
重要插件說明:
- github: 右上角添加github圖標(biāo)
- donate: 文章打賞插件,在文末點(diǎn)擊展示付款碼
- sharing-plus: 比默認(rèn)的分享插件,多了更多的分享按鈕
- mathjax: LaTeX公式顯示插件,可以支持絕大多數(shù)的數(shù)據(jù)公式,個(gè)別的公式還是會(huì)有問題
- mermaid-gb3: Mermaid渲染插件,可以支持畫圖
- code: 為代碼塊添加行號(hào)和復(fù)制按鈕,復(fù)制按鈕可關(guān)閉,單行代碼無行號(hào)
- search-plus: 文章內(nèi)容搜索插件,支持中文,使用這個(gè)插件時(shí)要移除默認(rèn)的lunr和search插件
- lightbox: 當(dāng)前頁顯示大圖,點(diǎn)擊圖片會(huì)放大顯示,不支持切換圖片
-
theme-comscore: 主題插件,默認(rèn)主題是黑白的,
comscore主題是彩色的,標(biāo)題和正文顏色有所區(qū)分 - valine: 誕生于2017年8月7日,是一款基于LeanCloud的快速、簡潔且高效的無后端評(píng)論系統(tǒng)
- pageview-count: 頁面瀏覽量統(tǒng)計(jì),但好像用不了,自己結(jié)合cutercounter進(jìn)行了改造
- favicon-absolute: 網(wǎng)頁icon圖標(biāo)定義
- copyright-v: 版權(quán)插件,復(fù)制文章內(nèi)容時(shí)會(huì)附帶上定義好的版權(quán)信息,和知乎復(fù)制的效果一樣
.bookignore,存放不想被打包的資源
.gitignore
.bookignore
book_default.json
_book/chapters/*.md
*.bat
*.pdf
_book
使用gitbook build命令,會(huì)在項(xiàng)目的目錄下生成一個(gè) _book 目錄,里面的內(nèi)容為靜態(tài)站點(diǎn)的資源文件
發(fā)布出來的就是這個(gè)目錄下的資源
gitbook build只負(fù)責(zé)生成靜態(tài)文件,gitbook serve不僅生成文件,還會(huì)啟動(dòng)網(wǎng)站服務(wù)
使用選項(xiàng) --log=debug 和 --debug 來獲取更好的錯(cuò)誤消息
gitbook build ./ --log=debug --debug
SUMMARY.md,用于存放數(shù)據(jù)目錄
# Summary
* [Introduction](README.md)
* [alicloud_deployment](./chapters/1.alicloud_deployment.md)
* [reinstall_the_system](./chapters/2.reinstall_the_system.md)
* [Linux常用命令](./chapters/3.Linux常用命令.md)
* [github協(xié)作](./chapters/4.github協(xié)作.md)
* [gitbook博客搭建](./chapters/5.gitbook博客搭建.md)
node_modules
終端執(zhí)行gitbook install可以安裝book.json配置的插件,下載的插件會(huì)在node_modules文件夾
markdown語法
Markdown是一種輕量級(jí)標(biāo)記語言,創(chuàng)始人是約翰·格魯伯(John Gruber)
它允許人們使用易讀易寫的純文本格式編寫文檔,然后轉(zhuǎn)換成有效的 HTML 文檔
推薦配合Typora編輯器一起食用
改造
訪客數(shù)
valine
美化
部署
打造完美寫作系統(tǒng):Gitbook+Github Pages+Github Actions
前面部分的內(nèi)容主要講解了gitbook的構(gòu)建和美化優(yōu)化等內(nèi)容
這部分講一下如何借助github pages和gitee pages部署自己的博客網(wǎng)站,正文開始前,先講解下Github Actions的基礎(chǔ)概念
Github Actions
-
CI/CD: 持續(xù)集成(CI)/持續(xù)交付(CD)管道是一系列步驟,其中包括從CI/CD流程開始的所有階段,并負(fù)責(zé)創(chuàng)建自動(dòng)化和無縫的軟件交付。而使用CI/CD管道,軟件發(fā)布工件可以從代碼檢入階段到測(cè)試、構(gòu)建、部署和生產(chǎn)階段一直在管道中前進(jìn)
這一概念之所以強(qiáng)大,是因?yàn)橐坏┲付斯艿溃涂梢詫⑵洳糠只蛉繉?shí)現(xiàn)自動(dòng)化,從而加快了流程,并減少了錯(cuò)誤。換句話說,CI/CD管道使組織每天更輕松地自動(dòng)多次交付軟件
Travis CI: 提供的是持續(xù)集成服務(wù)(Continuous Integration,簡稱 CI)。它綁定 Github 上面的項(xiàng)目,只要有新的代碼,就會(huì)自動(dòng)抓取。然后,提供一個(gè)運(yùn)行環(huán)境,執(zhí)行測(cè)試,完成構(gòu)建,還能部署到服務(wù)器
Github Actions:
GitHub Actions是你在GitHub庫中創(chuàng)建自定義的工作流,工作流指的就是自動(dòng)化的流程,比如構(gòu)建、測(cè)試、打包、發(fā)布、部署等等,可以設(shè)置觸發(fā)條件或定時(shí)執(zhí)行,由github提供服務(wù)器環(huán)境
<font color=#7B68EE>持續(xù)集成(CI)/持續(xù)交付(CD)是一種自動(dòng)化管理流程,而Travis CI和Github Actions都是具體的實(shí)現(xiàn),后者是github官方提供的</font>
githun actions的使用案例可以自己百度或參考github協(xié)作
github pages
自動(dòng)發(fā)布到github pages分支(可以自己設(shè)置分支)
配置token
github項(xiàng)目下新建:name=TOKEN,value=github生成的token
基本用法
- name: Deploy #步驟4:把編譯好的靜態(tài)目錄上傳到gh-pages分支上
uses: JamesIves/github-pages-deploy-action@3.1.5 #這里調(diào)用第三方依賴,用于上傳代碼到指定分支上
with:
ACCESS_TOKEN: ${{ secrets.TOKEN }}
BRANCH: gh-pages #github pages 默認(rèn)的分支
FOLDER: _book #上傳文件的目錄,我這個(gè)目錄在根目錄下,如果是子目錄可以這么寫 docs/.vuepress/dist
gitee pages
使用 GitHub Actions 解決了 GitHub 代碼自動(dòng)同步 Gitee 的問題,但我們的博客倉庫代碼同步到 Gitee 后,并不能像 GitHub 一樣自動(dòng)部署 Pages,如果不使用付費(fèi)的 Gitee Pages Pro 服務(wù),那我們?cè)撛趺磳?shí)現(xiàn) Gitee 自動(dòng)部署 Pages 呢
基本用法
新建一個(gè)name=GITEE_PASSWORD, value=gitee登陸密碼的secrets
- name: Build Gitee Pages
uses: yanglbme/gitee-pages-action@main
with:
# 注意替換為你的 Gitee 用戶名
gitee-username: narutohyc
# 注意在 Settings->Secrets 配置 GITEE_PASSWORD
gitee-password: ${{ secrets.GITEE_PASSWORD }}
# 注意替換為你的 Gitee 倉庫,倉庫名嚴(yán)格區(qū)分大小寫,請(qǐng)準(zhǔn)確填寫,否則會(huì)出錯(cuò)
gitee-repo: hycBook/bk_index
# 要部署的分支,默認(rèn)是 master,若是其他分支,則需要指定(指定的分支必須存在)
branch: gh-pages