把文章整理成gitbook

偶然间看到别人的leetcode整理成的gitbook,觉得自己如果每个leetcode开一篇文章写岂不是要写几百篇文章,故也想整理成gitbook会更加清晰。

移植过程

安装node.js

安装gitbook

1
npm install -g gitbook-cli

新建目录,初始化为gitbook

1
gitbook init

执行完后,你会看到多了两个文件 —— README.md 和 SUMMARY.md,它们的作用如下:

  • README.md —— 书籍的介绍写在这个文件里
  • SUMMARY.md —— 书籍的目录结构在这里配置

 编辑 SUMMARY.md 文件,内容修改为以下格式:

1
2
3
4
5
6
7
8
9
10
11
# 目录

* [前言](README.md)
* [第一章](Chapter1/README.md)
* [第1节:衣](Chapter1/衣.md)
* [第2节:食](Chapter1/食.md)
* [第3节:住](Chapter1/住.md)
* [第4节:行](Chapter1/行.md)
* [第二章](Chapter2/README.md)
* [第三章](Chapter3/README.md)
* [第四章](Chapter4/README.md)

然后我们回到命令行,在文件夹中再次执行gitbook init命令。GitBook 会查找 SUMMARY.md 文件中描述的目录和文件,如果没有则会将其创建。

接着我们执行 gitbook serve 来预览这本书籍,执行命令后会对 Markdown 格式的文档进行转换,默认转换为 html 格式,最后提示 Serving book on http://localhost:4000

当然写文章不只是为了自己看,需要分享出去,这里就需要gitbook build了,执行完gitbook build之后,目录下面会生成一个_book这里就是生成的静态网页资源,里面有个index.html,这个是网站的入口。

github上创建gitbook-algorithms仓库

1
git@github.com:lmtsunnie/gitbook-algorithms.git

本地和远程关联起来并push到github

1
2
3
4
git remote add origin git@github.com:lmtsunnie/gitbook-algorithms.git
git add *
git commit -m "gitbook init"
git push -u origin master

vps上创建公钥私钥,并把公钥上传到github

1
root@VM-0-12-ubuntu:~/.ssh# ssh-keygen

vps上拉下github的代码

1
git pull git@github.com:lmtsunnie/gitbook-algorithms.git

vps上部署nginx(涉及到nginx在同一域名同一端口下部署多个工程的问题)

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
server {
listen 2000;
listen [::]:2000;

server_name 123.207.143.168;
return 301 https://limengting.site/gitbook-algorithms;
}

server {
listen 443 ssl http2;
root /var/www/gitbook-algorithms/_book;
server_name 123.207.143.168;
ssl on;
ssl_certificate /etc/nginx/cert/214812723670307.pem;
ssl_certificate_key /etc/nginx/cert/214812723670307.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/gitbook-algorithms_access.log;
error_log /var/log/nginx/gitbook-algorithms_error.log;
location / { # 博客主页
root /var/www/hexo;
index index.html;
}
location /gitbook-algorithms { # gitbook
alias /var/www/gitbook-algorithms/_book; # 用alias而不是root
index index.html;
}
}

注意:

参考文章

alias 和 root 的区别: root 的话,location 中的地址会拼接到root后面;alias就直接代替后面的东西

重启nginx

1
root@VM-0-12-ubuntu:~# service nginx reload

访问这里就能看到最后整理成的gitbook了。

修改文章之后需要的操作

本地

1
2
3
4
gitbook build
git add *
git commit -m "xxx"
git push

vps

1
git pull origin master
谢谢小天使请我吃糖果
0%