热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Gitbook+码云创建自己的文档

原文地址:Gitbook码云创建自己的文档前言之前Freewind的主题使用手册是在看云上写的,后来觉得在看云不方便更新,刚好因为改动

原文地址:Gitbook+码云创建自己的文档


前言

之前Freewind的主题使用手册是在看云上写的,后来觉得在看云不方便更新,刚好因为改动比较大,大部分文档需要重新写,就索性直接换成gitbook,我在网上也搜了一下gitbook+码云,但是没找到相关资料,就自己整理一下给大家分享,先看看成品

https://imagebed-1252410096.cos.ap-nanjing.myqcloud.com/2054/22eb5966afb248c8965fc461cb5c3394.png

**Q:**为什么要用码云来部署Gitbook?

**A:**因为想要你的在线文档任何人都能通过URL访问到,就得将其部署上线,当然我们可以将它当做静态网站部署到服务器上,但是那样难免会有服务器成本且更新起来不方便,而码云的Gitee Pages与github的Pages都可以帮助我们发布静态页面,但由于Github因内访问起来比较慢,就选择了码云


准备工作


安装NodeJs

安装gitbook所需组件gitbook-cli,当然它需要依赖node.js来运行,我们可以直接在NodeJs官网去下载nodejs然后安装

https://imagebed-1252410096.cos.ap-nanjing.myqcloud.com/2054/72541a1fcb984c249dd9f82abafc833d.png

我这里介绍另外一种方法,用**nvm(nodejs version management)**来安装,它是nodejs的版本管理工具,通过它可以安装和切换不同版本的nodejs。

https://github.com/nvm-sh/nvm这是nvm的github仓库,大家可以参考里面的说明来安装,我自己是Mac OS的系统,我下面就以我自己的环境为例安装

直接执行如下脚本进行安装

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.39.0/install.sh | bash

安装完成之后输入nvm -v来验证,如果安装成功打输出nvm的版本

➜ ~ nvm -v
0.39.0

我们可以使用nvm install 版本号来安装不同版本的node.js,我在Mac OS下安装大于10的版本使用Gitbook会报错,应该是XCode有些地方没有配置好,所以我这里就安装10.24的版本

➜ ~ nvm install 10
Downloading and installing node v10.24.1...
Downloading https://nodejs.org/dist/v10.24.1/node-v10.24.1-darwin-x64.tar.xz...
###################################################################################################################################################################################### 100.0%
Computing checksum with shasum -a 256
Checksums matched!
Now using node v10.24.1 (npm v6.14.12)
Creating default alias: default -> 10 (-> v10.24.1)

我们可以通过nvm list来列出安装的nodejs版本,而箭头指向的就是我们当前使用的版本,也可以通过nvm use 版本号来切换

➜ ~ nvm list
-> v10.24.1
default -> 10 (-> v10.24.1)
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v10.24.1) (default)
stable -> 10.24 (-> v10.24.1) (default)
lts/* -> lts/gallium (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.24.1
lts/erbium -> v12.22.7 (-> N/A)
lts/fermium -> v14.18.1 (-> N/A)
lts/gallium -> v16.13.0 (-> N/A)
➜ ~ nvm use 10
Now using node v10.24.1 (npm v6.14.12)

我们安装完nodejs之后可以运行node -v来查看nodejs的版本

➜ ~ node -v
v10.24.1

安装gitbook-cli

安装了nodejs,我们也就有了npm(node package management),接下来我们直接使用npm去安装gitbook-cli

npm install -g gitbook-cli # -g表示全局安装

运行gitbook -V(大写),如果输出版本号则安装成功

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

本地使用


编写文档

创建一个目录,然后进入目录运行gitbook init来初始化

➜ book mkdir testbook
➜ book cd testbook
➜ testbook gitbook init
warn: no summary file in this book
info: create README.md
info: create SUMMARY.md
info: initialization is finished
➜ testbook

可以用例如vs code等工具打开

https://imagebed-1252410096.cos.ap-nanjing.myqcloud.com/2054/0b056f327a254583b15490926ffcfbd8.png

比如我们要写一如下结构的文档

介绍
前言
第一章第1.1节第1.2节
第二章第2.1节第2.2节
后记

我们修改我们的SUMMARY.md文件,这个文件是我们文档的目录,其实说白是就是一个markdown文档

# Summary* [介绍](README.md)
* [前言](preface.md)
* [第一章]()* [第1.1节](part1/section1_1.md)* [第1.2节](part1/section1_2.md)
* [第二章]()* [第1.1节](part2/section2_1.md)* [第1.2节](part2/section2_2.md)
* [后记](postscript.md)

然后我们创建对应的文件就可以啦,我们看看目录结构

➜ testbook tree
.
├── README.md
├── SUMMARY.md
├── part1
│ ├── section1_1.md
│ └── section1_2.md
├── part2
│ ├── section2_1.md
│ └── section2_2.md
├── postscript.md
└── preface.md2 directories, 8 files

我们在part1/section1_1.md中写入如下内容

https://imagebed-1252410096.cos.ap-nanjing.myqcloud.com/2054/b73efa6b78e440eda087e4c3cf0d08c2.png


构建文档

接下来使用gitbook build来构建我们的页面

➜ testbook gitbook build
info: 7 plugins are installed
info: 6 explicitly listed
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 3 pages
info: found 4 asset files
info: >> generation finished with success in 0.4s !

接下来我们可以看到在我们的目录下多了一个_book的目录,里面有字体,css文件,js脚本,html文件,我们不难发现html文件和我们之前创建的markdown文件是对应上的,其实就是Gitbook帮我们将我们的markdown文件翻译成了html页面

➜ testbook tree
.
├── README.md
├── SUMMARY.md
├── _book
│ ├── gitbook
│ │ ├── fonts
│ │ │ └── fontawesome
│ │ │ ├── FontAwesome.otf
│ │ │ ├── fontawesome-webfont.eot
│ │ │ ├── fontawesome-webfont.svg
│ │ │ ├── fontawesome-webfont.ttf
│ │ │ ├── fontawesome-webfont.woff
│ │ │ └── fontawesome-webfont.woff2
│ │ ├── gitbook-plugin-fontsettings
│ │ │ ├── fontsettings.js
│ │ │ └── website.css
│ │ ├── gitbook-plugin-highlight
│ │ │ ├── ebook.css
│ │ │ └── website.css
│ │ ├── gitbook-plugin-lunr
│ │ │ ├── lunr.min.js
│ │ │ └── search-lunr.js
│ │ ├── gitbook-plugin-search
│ │ │ ├── lunr.min.js
│ │ │ ├── search-engine.js
│ │ │ ├── search.css
│ │ │ └── search.js
│ │ ├── gitbook-plugin-sharing
│ │ │ └── buttons.js
│ │ ├── gitbook.js
│ │ ├── images
│ │ │ ├── apple-touch-icon-precomposed-152.png
│ │ │ └── favicon.ico
│ │ ├── style.css
│ │ └── theme.js
│ ├── index.html
│ ├── part1
│ │ ├── section1_1.md
│ │ └── section1_2.md
│ ├── part2
│ │ ├── section2_1.md
│ │ └── section2_2.md
│ ├── postscript.html
│ ├── preface.html
│ └── search_index.json
├── part1
│ ├── section1_1.md
│ └── section1_2.md
├── part2
│ ├── section2_1.md
│ └── section2_2.md
├── postscript.md
└── preface.md14 directories, 38 files

本地运行

使用gitbook serve来启动一个服务器,其实就是把_book映射到了网站的根目录,接下来访问http://localhost:4000即可

➜ testbook 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 3 pages
info: found 4 asset files
info: >> generation finished with success in 0.5s !Starting server ...
Serving book on http://localhost:4000

点到第1.1小节,看到如下内容

https://imagebed-1252410096.cos.ap-nanjing.myqcloud.com/2054/c572ec772b8c496b9f733ba9a472beab.png

接下来我们只需要给每个文件中写入内容再次重新生成即可


码云部署


初始化本地仓库

我们将我们的文档项目使用git init初始化为一个git项目

➜ testbook git init
Initialized empty Git repository in /Users/lengwen/Code/book/testbook/.git/
➜ testbook git:(master)

然后使用如下命令提交变更

➜ testbook git:(master)git add -A
➜ testbook git:(master)git commit -m "初始化完成"
[master (root-commit) 168c95e] 初始化完成39 files changed, 3117 insertions(+)create mode 100644 README.mdcreate mode 100644 SUMMARY.mdcreate mode 100644 _book/gitbook/fonts/fontawesome/FontAwesome.otfcreate mode 100644 _book/gitbook/fonts/fontawesome/fontawesome-webfont.eotcreate mode 100644 _book/gitbook/fonts/fontawesome/fontawesome-webfont.svgcreate mode 100644 _book/gitbook/fonts/fontawesome/fontawesome-webfont.ttfcreate mode 100644 _book/gitbook/fonts/fontawesome/fontawesome-webfont.woffcreate mode 100644 _book/gitbook/fonts/fontawesome/fontawesome-webfont.woff2create mode 100644 _book/gitbook/gitbook-plugin-fontsettings/fontsettings.jscreate mode 100644 _book/gitbook/gitbook-plugin-fontsettings/website.csscreate mode 100644 _book/gitbook/gitbook-plugin-highlight/ebook.csscreate mode 100644 _book/gitbook/gitbook-plugin-highlight/website.csscreate mode 100644 _book/gitbook/gitbook-plugin-livereload/plugin.jscreate mode 100644 _book/gitbook/gitbook-plugin-lunr/lunr.min.jscreate mode 100644 _book/gitbook/gitbook-plugin-lunr/search-lunr.jscreate mode 100644 _book/gitbook/gitbook-plugin-search/lunr.min.jscreate mode 100644 _book/gitbook/gitbook-plugin-search/search-engine.jscreate mode 100644 _book/gitbook/gitbook-plugin-search/search.csscreate mode 100644 _book/gitbook/gitbook-plugin-search/search.jscreate mode 100644 _book/gitbook/gitbook-plugin-sharing/buttons.jscreate mode 100644 _book/gitbook/gitbook.jscreate mode 100644 _book/gitbook/images/apple-touch-icon-precomposed-152.pngcreate mode 100644 _book/gitbook/images/favicon.icocreate mode 100644 _book/gitbook/style.csscreate mode 100644 _book/gitbook/theme.jscreate mode 100644 _book/index.htmlcreate mode 100644 _book/part1/section1_1.mdcreate mode 100644 _book/part1/section1_2.mdcreate mode 100644 _book/part2/section2_1.mdcreate mode 100644 _book/part2/section2_2.mdcreate mode 100644 _book/postscript.htmlcreate mode 100644 _book/preface.htmlcreate mode 100644 _book/search_index.jsoncreate mode 100644 part1/section1_1.mdcreate mode 100644 part1/section1_2.mdcreate mode 100644 part2/section2_1.mdcreate mode 100644 part2/section2_2.mdcreate mode 100644 postscript.mdcreate mode 100644 preface.md

远程仓库

在码云上新建一个仓库,一定要勾选开源

https://imagebed-1252410096.cos.ap-nanjing.myqcloud.com/2054/9fa9f68020fa4243b5d67f58930ec7a7.png

创建成功

https://imagebed-1252410096.cos.ap-nanjing.myqcloud.com/2054/0b65121dd8c845fabab12a7b143bac6b.png

接下来关联远程仓库与本地仓库

使用如下命令

git remote add origin git@gitee.com:kevinlu98/booktest.git # 后面是你自己的远程仓库地址

使用如下命令推送本地变更到远程仓库

git push origin master

https://imagebed-1252410096.cos.ap-nanjing.myqcloud.com/2054/92d1c882067b47369bee019532563870.png

再次来到远程仓库我们可以看到已经和本地仓库同步了

https://imagebed-1252410096.cos.ap-nanjing.myqcloud.com/2054/36a68de92ef9486fbaf2be3311770910.png


开启Gitee Pages

在仓库点 服务-> Gitee Pages

https://imagebed-1252410096.cos.ap-nanjing.myqcloud.com/2054/adfbb1aef65f4ba1b51f0b947559472c.png

部署我们的_book目录为网站根目录即可,因为我们知道Gitbook实际就是把我们markdown翻译成了html页面放到了_book目录

https://imagebed-1252410096.cos.ap-nanjing.myqcloud.com/2054/9dd675819dae46619be6368ebf05ee9a.png

部署成功后我们直接访问码云返回给我们的链接即可

https://imagebed-1252410096.cos.ap-nanjing.myqcloud.com/2054/2ec5f4053d444abe88dfc94cd1ba2def.png

https://imagebed-1252410096.cos.ap-nanjing.myqcloud.com/2054/b4d45af65a8240d9ad03cd06ae40375c.png


更新

我们下次要更新文档怎么办呢?我们现在在本地做如下变更

https://imagebed-1252410096.cos.ap-nanjing.myqcloud.com/2054/72856b8dd8f1481d9974ddf2a6f6cefc.png

我们重新构建一下Gitbook

➜ testbook git:(master) ✗ gitbook build
info: 7 plugins are installed
info: 6 explicitly listed
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 0 asset files
info: >> generation finished with success in 0.7s !

我们变更完成之后再次提交变更

➜ testbook git:(master)git status
On branch master
Changes not staged for commit:(use "git add ..." to update what will be committed)(use "git restore ..." to discard changes in working directory)modified: _book/index.htmlmodified: _book/part1/section1_1.htmlmodified: _book/part1/section1_2.htmlmodified: _book/part2/section2_1.htmlmodified: _book/part2/section2_2.htmlmodified: _book/postscript.htmlmodified: _book/preface.htmlmodified: _book/search_index.jsonmodified: part1/section1_1.mdno changes added to commit (use "git add" and/or "git commit -a")
➜ testbook git:(master)git add -A
➜ testbook git:(master)git commit -m "1.1小节更新"
[master f305b6d] 1.1小节更新9 files changed, 10 insertions(+), 10 deletions(-)
➜ testbook git:(master)

然后使用git push origin master推送变更到远程仓库

https://imagebed-1252410096.cos.ap-nanjing.myqcloud.com/2054/1f50cb6c75874523856a8ea4dc2a519a.png

可以看到我们远程仓库已经更新了

https://imagebed-1252410096.cos.ap-nanjing.myqcloud.com/2054/b420b1d7f34f43db9f9f55acc866571b.png

我们再次来到Gitee Pages,点击更新

https://imagebed-1252410096.cos.ap-nanjing.myqcloud.com/2054/b8ac7c8da91c42f584fc00f5f2d94985.png

更新成功

https://imagebed-1252410096.cos.ap-nanjing.myqcloud.com/2054/2b2c6e557a424034a0615daba321bc3d.png


推荐阅读
  • Node.js学习笔记(一)package.json及cnpm
    本文介绍了Node.js中包的概念,以及如何使用包来统一管理具有相互依赖关系的模块。同时还介绍了NPM(Node Package Manager)的基本介绍和使用方法,以及如何通过NPM下载第三方模块。 ... [详细]
  • 使用nodejs爬取b站番剧数据,计算最佳追番推荐
    本文介绍了如何使用nodejs爬取b站番剧数据,并通过计算得出最佳追番推荐。通过调用相关接口获取番剧数据和评分数据,以及使用相应的算法进行计算。该方法可以帮助用户找到适合自己的番剧进行观看。 ... [详细]
  • 在Kubernetes上部署JupyterHub的步骤和实验依赖
    本文介绍了在Kubernetes上部署JupyterHub的步骤和实验所需的依赖,包括安装Docker和K8s,使用kubeadm进行安装,以及更新下载的镜像等。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • 本文详细介绍了如何创建和使用VUE uni-app开发环境,包括通过HBuilderX可视化界面和通过vue-cli命令执行的方法。文章内容简单清晰,易于学习与理解。通过学习本文,读者可以深入了解VUE uni-app开发环境,并通过实践验证掌握具体的使用情况。编程笔记将为读者推送更多相关知识点的文章,欢迎关注! ... [详细]
  • 必须先赞下国人npm库作品:node-images(https:github.comzhangyuanweinode-images),封装了跨平台的C++逻辑,形成nodejsAP ... [详细]
  • centos php部署到nginx 404_NodeJS项目部署到阿里云ECS服务器全程详解
    本文转载自:http:www.kovli.com20170919ecs-deploy作者:Kovli本文详细介绍如何部署NodeJS项目到阿里云ECS上, ... [详细]
  • Node.js详细安装及环境配置
    1、下载安装根据自己电脑系统及位数选择,我这里选择windows64位.msi格式安装包(官网:https:odejs.orgzh-cndownload).msi和.zip格式区别 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文讨论了在使用PHP cURL发送POST请求时,请求体在node.js中没有定义的问题。作者尝试了多种解决方案,但仍然无法解决该问题。同时提供了当前PHP代码示例。 ... [详细]
  • node.jsurlsearchparamsAPI哎哎哎 ... [详细]
  • 在加载一个第三方厂商的dll文件时,提示“找不到指定模块,加载失败”。由于缺乏必要的技术支持,百思不得期间。后来发现一个有用的工具 ... [详细]
  • 一:跨域问题1、同源策略(浏览器的安全策略)    只允许当前页面朝当前域下发请求,如果向其他域发请求,请求可以正常发送,数据也可以拿回,但是被浏览器拦截了  2、c ... [详细]
  • 在一对一直播源码使用过程中,有时会出现软键盘切换闪屏问题,就是当切换表情的时候屏幕会跳动,因此要对一对一直播源码表情面板无缝切换进行优化。 ... [详细]
author-avatar
手机用户2502939987
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有