Using GitBook

使用GitBook搭建一个wiki笔记。

1
2
3
4
5
centos 7.3
node 10.16.1
npm 6.13.4
git 1.8.3
gitbook 3.2.3

起步

需要安装如上,node版本不宜过高,npm需要更换源为国内淘宝源以保证下载速度。

1
2
3
4
5
6
# 安装node,直接使用yum安装的nodejs版本有点低
$ wget https://nodejs.org/dist/v10.16.1/node-v10.16.1-linux-x64.tar.xz
# 解压
$ tar xvf node-v10.16.1-linux-x64.tar.xz
# 修改nodejs的PATH
$ vim ~/.bash_profile 

打开文件加入以下

1
2
export N_PREFIX=/node-v10.16.1-linux-x64 #node实际安装位置(具体以pwd为主)
export PATH=$N_PREFIX/bin:$PATH	
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
#使修改生效
$ source ~/.bash_profile
####################################
# 更换npm 源
$ npm config set registry https://registry.npm.taobao.org
# 或者安装cnpm
$ npm install -g cnpm --registry=https://registry.npm.taobao.org
# 安装gitbook
$ npm install -g gitbook-cli
# 查看版本gitbook 可能会出现停留在 installing gitbook
$ gitbook -V  
# 可能会报错 “if (cb) cb.apply(this, arguments)”
# 打开 polyfills.js 注释62-64行代码
//fs.stat = statFix(fs.stat)
//fs.fstat = statFix(fs.fstat)
//fs.lstat = statFix(fs.lstat)

开始使用gitbook!

1
2
3
4
5
$ mkdir demo &&  cd demo
$ gitbook init
$ gitbook serve
Starting server ...
Serving book on http://localhost:4000

GitBook目录结构

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
.
├── book.json  # 配置数据 (optional)
├── README.md  # 前言或简介 (required)
├── SUMMARY.md # 电子书目录 (optional)
├── GLOSSARY.md	# 词汇/注释术语列表 (optional)
├── chapter-1/
|   ├── README.md
|   └── something.md
└── chapter-2/
    ├── README.md
    └── something.md

​ 书本的第一页内容是从文件 README.md 中提取的。如果这个文件名没有出现在 SUMMARY 中,那么它会被添加为章节的第一个条目。

​ GitBook 使用 SUMMARY.md 文件来定义本书的章节和子章节的结构。 SUMMARY.md 文件用于生成本书的目录。SUMMARY.md 的格式是一个链接列表。链接的标题将作为章节的标题,链接的目标是该章节文件的路径。向父章节添加嵌套列表将创建子章节。

1
2
3
4
5
6
7
# Summary
* [Part I](part1/README.md)
    * [Writing is nice](part1/writing.md)
    * [GitBook is nice](part1/gitbook.md)
* [Part II](part2/README.md)
    * [We love feedback](part2/feedback_please.md)
    * [Better tools for authors](part2/better_tools.md)

个性化插件

插件使用gitbook install:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
{
    "plugins": ["expandable-chapters-small",
        "advanced-emoji",
        "anchors",
        "page-toc-button",
        "hide-element",
        "back-to-top-button",
        "code",
        "splitter",
        "-lunr",
        "-search", 
        "search-pro",
        "tbfed-pagefooter",
        "todo",
        "-sharing"
        ],
    "pluginsConfig": {
        "expandable-chapters-small":{},
        "hide-element": {
            "elements": [".gitbook-link"]
        },
        "tbfed-pagefooter": {
            "copyright":"Copyright &copy 2021"
        }
    },
    "links" : {
        "sidebar" : {
            "Home" : "/"
        }
    },   
    "sharing": { 
        "facebook": false,
        "google": false,
        "twitter": false
    }
}

Git裸仓库存储

  1. 服务器安装git
  2. 创建git用户
  3. 创建仓库
  4. 配置ssh key 将个人的public key 添加到服务器的authorized_keys.

在服务器创建

1
2
3
4
5
6
7
8
9
#创建用户 name:git file_root:home/git
$ useradd git -d /home/git -m -s /bin/bash
$ $ $ $ su git # 切换用户
# 创建仓库
$ $ $ mkdir .ssh #创建.ssh文件夹和authorized_keys文件
#git创建repo可以使用
$ $ git init --bare wiki.git   # 这种方式会创建一个空的仓库,这种方式下只是创建了一仓库存储
# 也可以使用   
$ git init    # 这种方式实在该目录下创建一个.git 但是这样的话 项目区间和仓库是不分开的
  • 位于/home/git/wiki.git
  • 仓库与项目目录分离,仅用于存储
  • post-update钩子用于本地git push时及时更新项目目录
1
2
3
4
5
6
7
# file: /home/git/wiki.git/hooks/post-update
#!/bin/sh
unset GIT_DIR 
DIR_ONE=/wiki  
cd $DIR_ONE  # open /wiki
git pull wiki master # /git pull to update
git log > others/log.md # Redirect log to log.md

参考

使用 Gitbook 打造你的电子书

GitBook 是什么

GitBook中文文档

Licensed under CC BY-NC-SA 4.0
哦吼是一首歌。
Built with Hugo
Theme Stack designed by Jimmy