过年期间正好时间比较多,学习一下GItBook的使用
输出是一项很重要的能力,基于微信或简书发表文章已经成为很多人的选择,而对于系统一些的知识体系或专题就不适用了
在其他平台的写作内容都存在别人的服务器上,为了避免丢失自己要再保存一份,使用GitBook在本地和云端都有备份,还可以看到自己的编辑历史
因此,如果你想输出自己的知识专题,或者自己出一本书,那GitBook会帮到你
GitBook是一款制作在线书籍的软件,不需要购买服务器直接就能在网络上发布自己的书籍,如果需要有私密的书籍是需要付费的
如果对编程不太熟悉,可以使用网页端和客户端
如果了解github和git的使用,则可以使用命令行创建本地书籍,保存到github,通过关联可以有选择的发布到GitBook,安装插件并且支持构建其他格式电子书,如epub、pdf、mobi
此文章已经同步在了GitBook中:GitBook与GitHubPages搭建个人博客
网页端与客户端
网页端
登录GItBook官网 https://www.gitbook.com/
申请账号,或者使用第三方账号登录即可开始gitbook的写作,推荐使用github账号登录,可以将文件同步到github中
点击new book可以选择模板
也可以导入xml、docx、html等文件
创建成功就可以开始编辑
点击发布就可以在对应的网址看到自己的电子书了
客户端
在官网上可以下载到mac、window、linux的客户端,直接下载速度极慢,建议翻墙后下载,或者找其他资源
客户端的操作和网页端类似,不过客户端无法选择模板,但是可以在本地编辑,使用体验不是特别好,出现过几次bug
比如图片无法插入、用别的工具修改文件有时无法同步,推送会有莫名的冲突等
命令行创建GitBook
稍微懂一些编码就可以使用命令行创建GitBook了
有几个好处:
- 文档自己管理,可以选择是否发布到GitBook中,即免费有自己的私有图书
- 安装插件可以导出epub、pdf、mobi等格式的文件
- 安装插件添加评论,统计等功能,自定义css样式
步骤:确保电脑中已经安装nodejs、git,没有安装请自行百度
安装gitbook-cli
执行命令安装gitbook-cli
sudo npm install gitbook-cli
安装成功后输入gitbook -V可以看到版本信息
初始化图书
创建文件夹并新建文件README.md和SUMMARY.md
mkdir test1
cd test1
touch README.md
vim SUMMARY.md
SUMMARY中填写文章的结构
* [简介](README.md)
* [第一章](chap1/README.md)
- [第一节](chap1/page1.md)
- [第二节](chap1/page2.md)
* [第二章](chap2/README.md)
- [第一节](chap2/page1.md)
- [第二节](chap2/page2.md)
然后执行
gitbook init
会生成GitBook电子书的文件结构
├── README.md
├── SUMMARY.md
├── chap1
│ ├── README.md
│ ├── page1.md
│ └── page2.md
└── chap2
├── README.md
├── page1.md
└── page2.md
如果文件夹中是空的,GitBook会帮你初试化这两个文件
导入GitBook客户端
这时已经能用GitBook客户端导入了,不过还打不开
需要提交到Git仓库后才能打开
在github中新建一个名字一样的仓库test1
然后在刚才的文件夹中执行
git init //初试化本地仓库
git add -A //添加所有文件
git commit -m "gitbook" //保存一下
没有设置远程仓库的需要设置一下
git remote add origin https://github.com/{username}/test1
git push origin master
然后输入github的邮箱和密码推送成功
或者先在github中新建一个仓局clone到本地,然后再文件夹中执行gitbook init 提交步骤相同
这时可以使用GitBook客户端来编辑了,当然可以用别的markdown编辑器编辑
本地部署看效果
编辑完后在命令行执行
gitbook serve
在浏览器中访问http://localhost:4000/ 即可在本地看电子书
与Git仓库同步
GItBook本身就是用git做的版本控制,在网页端和客户端新建的电子书的Git仓库都是这样的格式
https://git.gitbook.com/{username}/{项目名称}.git
你可以直接clone此地址修改后提交
有个问题就是如果不付费,创建的所有书籍都是开放给所有人看的
结合前一节的命令行创建可以做到云端同步,想发布时发布,并且更改直接推
首先在GitBook设置页面安装GitHub整合插件
关联后就可以直接在GitBook新建时选择来自GitHub仓库
创前后在书籍的编辑页面可以看到已经和GitHub仓库关联
这时如果你用GItBook客户端打开本地的这本书就会出现2本内容一样的书,云端同步是本来就有的,另一本是本地打开的,名字是自己定的,随意修改哪本提交都会同步到GItHub和GitBook两个仓库
Others代表本地打开的,如果提交到其他GIt仓库也可以创建GitBook,但是没有了同步功能
所以你可以在本地创建GitBook提交到GitHub上,因为GItHub仓库也不是完全私密,你可以选择其他Git仓库,比如中国的码云
在书本编辑好后通过Git仓库创建GitBook发布书籍
GItBook插件
GitBook有很多开源的插件可以用,插件的安装需要在书籍的文件夹下简历book.json文件,然后添加在plugins字段和pluginsConfig,然后执行gitbook install,安装好插件后执行gitbook serve就可以看到效果
介绍几个插件
浮动目录导航
{
"plugins": ["anchor-navigation-ex"],
"pluginsConfig": {
"anchor-navigation-ex": {
"showLevel": false,
"associatedWithSummary": true,
"printLog": true,
"multipleH1": true,
"mode": "float",
"float": {
"showLevelIcon": false,
"level1Icon": "fa fa-hand-o-right",
"level2Icon": "fa fa-hand-o-right",
"level3Icon": "fa fa-hand-o-right"
}
}
}
}
点击目录能能够直接跳转
详细的配置参考https://github.com/zq99299/gitbook-plugin-anchor-navigation-ex/blob/master/doc/config.md
打赏插件
{
"plugins": [
"donate"
],
"pluginsConfig": {
"donate": {
"wechat": "微信二维码图片地址",
"alipay": "支付宝二维码图片地址",
"title": "",
"button": "打赏",
"alipayText": "支付宝打赏",
"wechatText": "微信打赏"
}
}
代码复制插件
{
"plugins":["copy-code-button"]
}
效果还有很多有用的插件,比如评论插件,不过需要翻墙注册别的账号设置授权