云计算

3分钟构建一本属于自己的电子书(附我的研究过程)

3分钟构建一本属于自己的电子书(附我的研究过程)

背景分析

不知道大家有没有发现,学编程学了又忘,在此呢我给朋友们推荐两个办法:

  • 搭建博客记录我们学习的内容
  • 搭建一个属于我们自己的电子书

博客适用于一些零零碎碎的文章。

image-20210415211512166

而电子书呢则适用于一个体系的内容,从头到尾系统的学习。

类似于这样:

image-20210415211412334

前面我已经介绍过了关于博客的搭建 传动门

这篇呢就介绍如何搭建属于自己的一个电子书。

gitbook

gitbook是一款基于Node.js的命令行工具,可用来制作精美的电子书。格式可以为 HTML,PDF,eBook等。

但是由于搭建Gitbook环境经常会遇到一些问题,如下载经常失败等。

所以我将采用 docker 容器的方式部署环境,并开源给大家使用。

可以在三分钟之内构建属于自己的一款电子书,当然前提是需要安装 docker 环境!

如果你还没有使用过 docker,建议去了解一下,因为这是一个跨时代的产物,不然你就 out 了。

如果你现在就想试试,跳过接下来的内容,直接阅读如何使用即可。

传动门

快速体验 gitbook

当我们的需求无法得到满足时,我们会自己去造轮子。

但是已经有别人做好的轮子时,就不要造了,因为不见得你做的就比别人做的好!

不过造轮子的过程你最好要搞清楚

使用 docker search gitbook 进行查看。

image-20210415212924385

我们找到了一个还不错的镜像fellah/gitbook

如果你想看到该镜像是如何进行创建的

需要进入docker官方网站上找到源码

链接:https://hub.docker.com/r/fellah/gitbook/

接下来我们基于该镜像运行一个容器,并进入 bash shell。

docker run --rm -it fellah/gitbook bash

image-20210415213815822

可以看到 gitbook 命令已经安装成功。

使用 gitbook 容器构建电子书

  • SUMMARY.md
  • README.md
  • 以及各个章节的md文件
mkdir mybook
cd mybook
touch SUMMARY.md
touch README.md
touch page1.md
touch page2.md

并在文件中写入如下内容。

SUMMARY即可以当作电子书的目录,page1 将跳转到 page1.md 文件,page2 将跳转到 page2.md 文件。

image-20210415215951221

接下来我们使用命令 gitbook guild

image-20210415220025588

可以看到生成了一个 _book目录。这个即我们使用 gitbook 生成的一个 html 电子书。

image-20210415220126125

点击 index.html 即可以在网页中查看。

映射容器与本机的文件

我们发现一个问题,生成的文件在容器内部,我们本机无法访问,那该如何解决呢?

docker 提供了一个强大的功能,容器可以与本机上的文件夹映射,同步更新。

我们可以使用 -v 选项。

在宿主机上重复上述的步骤,创建需要的文件

  • SUMMARY.md
  • README.md
  • page1.md
  • page2.md

并写入相应的内容。

docker run --rm -v $PWD:/srv/gitbook fellah/gitbook gitbook build
  • -v $PWD:/srv/gitbook 即将当前目录映射到容易的 /srv/gitbook 上
  • --rm 表示运行一次容器之后就将该容器删除

image-20210415221954555

生成的 _book文件夹在本地上已经存在了。

我们来访问一下,点击_book 下的 index.html即可。

image-20210415222048542

当然跟那些制作的精美的电子书还有很大的差别,这是因为它们使用了很多插件。

基于该镜像自己制作镜像

上述过程已经完成了最简单最纯净的电子书。

当然我们要是想再美化一下,如下图:

image-20210415222424671

就需要装一些插件。如

  • 点击按钮回到电子书的顶部
  • 导航目录折叠
  • 侧边栏
  • 页面添加页脚
  • 左侧上方插入logo

我将使用 Dockerfile 的方式制作自己的镜像。

并且不同的 tag 对应不同的风格的电子书。

制作第一个纯净版本

FROM fellah/gitbook
WORKDIR /gitbook

image-20210415223349866

docker build -t "gocloudcoder/gitbook:clear" .

image-20210415223506290

将该版本推送到 docker 仓库中

注意,前提是已经在登录才可使用

image-20210415224016628

我们来搜索一下是否上传成功。

首先删除本地的缓存。

image-20210415224712037

成功了,说明我们的纯净版镜像 clear 已经上传到 Docker 远程仓库了。

3分钟构建自己的电子书

前提条件:

  • 安装 docker环境
  • 创建好对应的文件
docker run --rm -v $PWD:/gitbook gocloudcoder/gitbook:clear gitbook build

image-20210415225101700

image-20210415225203768

编写 shell 脚本

由于命令太长无法记住,所以编写一个脚本,比较方便。

image-20210415225729732

赋予可执行权限 chmod +x gitbook.sh

使用脚本构建电子书:

image-20210415225919030

测试微信公众号插件

上一篇

编程的本质:Logic 与 Control 分离!

下一篇

你也可能喜欢

发表评论

您的电子邮件地址不会被公开。 必填项已用 * 标注

提示:点击验证后方可评论!

插入图片

个人微信公众号

we-tuiguang

qq交流群

群号:1046260719

微信扫一扫

微信扫一扫