什么是gitbook

gitbook简单来说就是一款可以在线制作书籍的网站,在这里可以把自己的文档整理成书籍发布出来,便于阅读。具体制作有两种方式,一种是在gitbok官网上进行创作,另外一种使用gitbook工具进行开发。本文主要介绍使用gitbook工具开发这种方式,关于在线制作,大家可以进入官网尝试,不过可能会遇到翻墙问题。

gitbook官网:https://www.gitbook.com/

使用gitbook工具开发

安装node、git

开发之前先确保已经安装nodejs、git,这是我本机安装的情况,只要能查看到版本信息,就说明安装成功了

~ node -v
v8.12.0
~ git --version
git version 2.19.1.windows.1

安装gitbook命令行工具

Node提供了gitbook的命令行工具gitbook-cli,所以在这里下载一个这样的工具

~ npm install -g gitbook-cli

查看是否安装成功

~ gitbook --version
CLI version: 2.3.2
GitBook version: 3.2.3

出现版本信息,证明gitbook安装成功

gitbook初始化

创建工作目录,并创建README.md、SUMMARY.md,然后进行初始化

~ mkdir gitbook
~ cd gitbook
~ touch README.md
~ touch SUMMARY.md

在SUMMARY.md填写自己的目录机构

* [Introduction](README.md)
* [第一章](doc/chapter1/README.md)
    * [第一节](doc/chapter1/page1.md)
    * [第二节](doc/chapter1/page2.md)
* [第二章](doc/chapter2/README.md)
    * [第一节](doc/chapter2/page1.md)
    * [第二节](doc/chapter2/page2.md)

开始初始化

gitbook init

目录结构如下

gitbook目录

gitbook会自动创建对应的目录和文件。当然你也可以选择先不创建README.md、SUMMARY.md这两个文件,直接使用gitbook init进行初始化,它会自动为你创建这两个文件。

本地启动服务编写书籍

输入gitbook serve命令,启动服务

~ 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 7 pages
info: found 6 asset files
info: >> generation finished with success in 0.9s !

Starting server ...
Serving book on http://localhost:4000

出现以上提示就表示服务已经启动成功,然后在浏览器输入http://localhost:4000 就可以看到效果了

项目部署到github pages

首先了解一下github pages,它是为你的项目提供一个免费的访问站点,并且直接指向你的github仓库,你的仓库更新,站点也自动更新。

紧接着我们把项目分成master、gh-pages两个分支,源码放在master分支上,要部署的网站放在gh-pages分支。 具体操作:

1.在github上创建gitbook仓库
2.在本地项目中创建.gitignore文件,内容如下:
_book
3.上传本地项目到github

上传master分支的内容

~ git init
~ git add .
~ git commit -m 'gitbook init'
~ git remote add origin https://github.com/{username}/gitbook.git
~ git push origin master

上传gh-pages的内容,为了方便可以在根目录创建一个deploy.sh脚本

#!/usr/bin/env sh
echo '开始执行命令'

# 是否安装node
echo '检查是否安装node'
if command -v node >/dev/null 2>&1; then
    echo "Node exists"
else 
    echo "Node does not exist" && exit 0
fi

# 是否安装git
echo '检查是否安装git'
if command -v git >/dev/null 2>&1; then
    echo "Git exists"
else 
    echo "Git does not exist" && exit 0
fi

# 生成静态文件
echo '执行命令:gitbook build .'
gitbook build .

# 进入生成的文件夹
echo '执行命令:cd ./_book'
cd ./_book

# 重写图片路径
echo '执行命令:node ./build/renameImgUrl'
node ./build/renameImgUrl.js

sleep 1

# 初始化一个仓库,仅仅是做了一个初始化的操作,项目里的文件还没有被跟踪
echo "执行命令:git init\n"
git init

# 保存所有的修改
echo "执行命令:git add ."
git add .

# 把修改的文件提交
echo "执行命令:commit -m 'deploy'"
git commit -m 'deploy'

# 如果发布到 https://<USERNAME>.github.io/<REPO>
echo "执行命令:git push -f git@github.com:EternallyMaybe/blogs.git master:gh-pages"
git push -f git@github.com:EternallyMaybe/blogs.git master:gh-pages

# 返回到上一次的工作目录
echo "回到刚才工作目录"
cd -

文件保存后,执行bash deploy.sh命令,然后要发布的内容就会被推送到gh-pages分支上,这里需要注意一点,window系统不支持.sh文件,但是git bash却支持这种文件,所以可以在git bash中运行这条命令。

4.发布项目

在github网站上的仓库里面点击Settings -> GitHub Pages选项中 -> Source里面选择gh-pages branch 然后点击Save按钮,然后在GitHub Pages下面就会看见一个网站。

插件

gitbook有插件官网,默认带有5个插件,highlight、search、sharing、font-settings、livereload,如果要去除自带的插件, 可以在插件名称前面加 -,比如:

"plugins": [
    "-search"
]

新增插件

{
    "plugins": ["github"],
    "pluginConfig": {
        "github": {
            "url": "https://github.com/your/repo"
        }
    }
}

最后在控制台输入gitbook install

项目地址

最后附上本项目的github地址:https://github.com/EternallyMaybe/blogs/

参考文章

gitbook使用教程:https://segmentfault.com/a/1190000017960359

Github Pages:https://sspai.com/post/54608

gitbook 插件:https://www.cnblogs.com/mingyue5826/p/10307051.html

Copyright © Eternally all right reserved,powered by Gitbookmodified at 2019-08-20 05:02:22

results matching ""

    No results matching ""