gitbook+github pages+github actions實(shí)現(xiàn)自動(dòng)化部署博客

異世界蕾姆_0.png

[TOC]


gitbook

使用 Gitbook 打造你的電子書

gitbook官網(wǎng)

環(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
image-20220401083228138.png

這時(shí)候會(huì)生成下面兩個(gè)文件README.mdSUMMARY.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
image-20220401083540102.png

重要文件

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)的lunrsearch插件
  • 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

博客Valine評(píng)論樣式美化

美化

部署

打造完美寫作系統(tǒng):Gitbook+Github Pages+Github Actions

Travis CI簡介

什么是持續(xù)集成(CI)/持續(xù)交付(CD)管道?

GitHub Actions

GitHub Actions 是什么?

前面部分的內(nèi)容主要講解了gitbook的構(gòu)建和美化優(yōu)化等內(nèi)容

這部分講一下如何借助github pagesgitee 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

GitHub Pages Deploy Action

自動(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

Gitee 如何自動(dòng)部署 Pages?還是用 GitHub Actions!

使用 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
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容