Gitbook----基于 Windows 10 系统本地安装配置 Gitbook 编写属于自己的电子书
查看原文
文章目录
- 一、安装 Nodejs
- 二、安装 Gitbook
- 三、gitbook 的使用方法
- 四、设计电子书的目录结构
- 五、设置 gitbook 常用配置
一、安装 Nodejs
若要在 Windows 10 系统即本地使用 Gitbook,需要安装 gitlab-cli 工具,而 gitbook-cli 工具是基于 Nodejs的,因此首先需要安装 Nodejs
如果是初学者,可以参考 Nodejs----基于 Windows 10 系统安装 Nodejs 安装 Nodejs,这里需要注意,本文验证过安装 16.20.1 版本的 Nodejs是可以的,因此这里建议也安装 16.20.1 版本,不要安装更高的版本,如果手头上涉及多个前端项目,那么本文这里还是直接推荐参考 nvm----在 Windows10 系统同时安装管理多个Nodejs版本并能进行灵活便捷的切换工具 通过安装nvm,从而可以在 Windows 系统上安装多个 Nodejs 版本,这样在后续项目开发中可以做到灵活切换 Nodejs 的版本。本文就以 nvm 工具的方式演示
二、安装 Gitbook
(1)首先通过 nvm 查看本地已经安装了的 Nodejs 的版本,如下,这里已经安装了三个版本
(2)因此这里可以通过 nvm use 16.20.1 命令切换 Nodejs 的版本,切换完成后,再次查看,如下确认 Nodejs 版本已经切换到 16.20.1 版本了。
(3)然后即可开始安装 gitbook-cli 包了,执行如下命令
npm install gitbook-cli -g
(4) 然后执行如下命令查看 gitbook-cli 的版本号并安装 gitbook
gitbook -V
(5) 此时有可能会出现如下错误,如果没有出现则直接跳过本步骤,如果出现了如下错误,则需要去解决一下。
根据这里的报错提示,去打开 D:\ProgrameFile\nvm\v16.20.1\global\node_modules\gitbook-cli\node_modules\npm\node_modules\graceful-fs\polyfills.js 文件,找到287行代码,可以看出如果有调用 statFix 函数则会触发这个问题。
在这个文件中搜索 staFix 函数调用的位置,如下所示,只有如下三行在调用
这里也在网上查询了一些资料,发现好多人遇到过此问题,而且反馈只需要将此三行注释掉即可,因此这里我们同样也将此三行代码注释掉,如下图所示。
然后保存,再此执行 gitbook -V 命令,如下图所示,可以看到已经安装成功了。
三、gitbook 的使用方法
(1)这里就以 https://github.com/redrose2100/docs 代码仓为例展示了,将此 docs 项目下载到本地后,比如想写一本关于 Linux 的电子书,这里在 docs 项目中新建一个文件夹 linux,用于存放即将编写的电子书。目录结构如下所示:
(2)在cmd窗口中进入到 linux 的文件夹,然后执行 gitbook init 命令,这里又遇到了如下所示的错误。
此时需要找到文件 C:\Users\Administrator.gitbook\versions\3.2.3\lib\init.js,然后将 72 行注释掉,然后修改为 73行的代码
即将
return fs.writeFile(filePath, summary.toText(extension));
修改为:
return summary.toText(extension).then(stx=>{return fs.writeFile(filePath, stx);});
保存后,重新执行 gitbook init 命令,此时可以看到可以执行成功了。
(3)此时会新生成两个文件 README.md 和 SUMMARY.md,目录结构如下图所示:
(4)此时暂时先不做任何修改,然后直接执行 gitbook serve 命令启动服务,如下图所示:
(5)根据提示然后在浏览器中打开 http://localhost:4000/ ,即可打开电子书的页面了,如下图所示:
四、设计电子书的目录结构
首先需要规划一下电子书的目录结构,比如我们想写一本关于Linux的电子书,然后大概设计如下目录:
第一章 Linux 概述1.1 Linux 简介1.2 Linux 特点1.3 Linux 的发展历史
第二章 Linux 常用命令2.1 用户与权限管理命令2.2 文件管理命令2.3 磁盘管理命令
第三章 shell 编程3.1 条件语句3.2 循环语句3.3 shell 编程实例
(1)首先在 linux 文件下创建三个文件夹,比如 ch01、ch02、ch03,用于存放三章内容,然后在每一个创建的子文件夹中继续创建md文件,比如 ch01/1_1.md, ch01/1_2.md, ch01/1_3.md, ch02/2_1.md, ch02/2_2.md, ch02/2_3.md, ch03/3_1.md, ch03/3_2.md, ch03/3_3.md, 此时的文件目录结构如下图所示:
(2)linux/README.md 文档可以理解为电子书的前言,而 SUMMARY.md 则是目录文件,这里比如先将 README.md 文档内容修改为如下内容:
# 前言这是一本关于 Linux 的技术实战类型的书籍
(3)然后重点就是写 SUMMARY.md 文档,即编写目录了,这里根据电子书籍规划目录,可以编写 SUMMARY.md 文件的内容如下:
# 目录* [前言](README.md)* [第一章 Linux 概述]()* [1.1 Linux 简介](ch01/1_1.md)* [1.2 Linux 特点](ch01/1_2.md)* [1.3 Linux 的发展历史](ch01/1_3.md)
* [第二章 Linux 常用命令]()* [2.1 用户与权限管理命令](ch02/2_1.md)* [2.2 文件管理命令](ch02/2_2.md)* [2.3 磁盘管理命令](ch02/2_3.md)
* [第三章 Linux shell 编程]()* [3.1 条件语句](ch03/3_1.md)* [3.2 循环语句](ch03/3_2.md)* [3.3 shell 编程实例](ch03/3_3.md)
(4)将 gitbook serve 命令停止,然后重新执行 gitbook serve 命令,然后再根据提示打开 http://localhost:4000/ ,结果如下图所示,可以看出,此时已经和我们心中想象的电子书的格式差不多了。
五、设置 gitbook 常用配置
(1)在linux 文件夹即与 SUMMARY.md 同一目录下创建 book.json 文件,文件内容如下所示:
{"title": "Linux 从入门到精通","author": "redrose2100","description": "Linux 从入门到精通","language": "zh-hans","gitbook": "3.2.3","links": {"sidebar": {"GitHub": "https://github.com/redrose2100/docs"}}
}
其中:
- title:书名
- author:作者
- description: 简要描述
- language: 语言,这里使用 zh-hans 可以将页面切换为中文
- gitbook: gitbook 的版本号,在安装的时候可以看到
- links.sidebar: 可以设置连接,比如设置github链接调转到 docs 代码仓库地址
(2)再一次重新执行 gitbook serve 命令,然后重新打开 http://localhost:4000/ ,如下图所示,此时页面上原本英文的全部切换为中文了,而且在左侧还增加了一个 Github 链接,点击后是可以跳转到 github 上 docs 代码仓的。
至此,在Windows上就将gitbook成功的运行起来了,当然为了能够编写出更加丰富多彩的电子书,后续还有许多功能比如常用的插件、比如屏蔽不必要的信息等,都需要继续进一步去优化,后续优化将在其他文章中继续详细展开,这里就暂时不在展开了。
相关文章:
Gitbook----基于 Windows 10 系统本地安装配置 Gitbook 编写属于自己的电子书
查看原文 文章目录 一、安装 Nodejs二、安装 Gitbook三、gitbook 的使用方法四、设计电子书的目录结构五、设置 gitbook 常用配置 一、安装 Nodejs 若要在 Windows 10 系统即本地使用 Gitbook,需要安装 gitlab-cli 工具,而 gitbook-cli 工具是基于 Node…...
springMVC-Restful风格
基本介绍 REST:即Representational State Transfer。(资源)表现层状态转化。是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用. 1.HTTP协议里面,四个表示操…...
【OS】操作系统总复习笔记
操作系统总复习 文章目录 操作系统总复习一、考试题型1. 论述分析题2. 计算题3. 应用题 二、操作系统引论(第1章)2.1 操作系统的发展过程2.2 操作系统定义2.3 操作系统的基本特性2.3.1 并发2.3.2 共享2.3.3 虚拟2.3.4 异步 2.4 OS的功能2.5 OS结构2.5 习…...
powerbuilder游标的使⽤
在某些PowerBuilder应⽤程序的开发中,您可能根本⽤不到游标这样⼀个对象。因为在其它⼯具开发中很多需⽤游标实现的⼯作,在PowerBuilder中却已有DataWin-dow来代劳了。事实上,DataWindow不仅可以替代游标进⾏从后台数据库查询多条记录的复杂操作,⽽且还远不⽌这些。但是同DataW…...
docker创建镜像 Dockerfile
目录 docker的创建镜像的方式 dockerfile形成(原理) docker的核心作用 docker的文件结构 dockerfile的语法 CMD和ENTRPOINT的区别 创建dockerfile镜像 区别 RUN命令的优化 如何把run命令写在一块 copy和ADD区别 区别 centos7 构建Apache的d…...
C++共享和保护——(2)生存期
归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍 收藏⭐ 留言📝 生命如同寓言,其价值不在于…...
你好,C++(3)2.1 一个C++程序的自白
第2部分 与C第一次亲密接触 在浏览了C“三分天下”的世界版图之后,便对C有了基本的了解,算是一只脚跨入了C世界的大门。那么,怎样将我们的另外一只脚也跨入C世界的大门呢?是该即刻开始编写C程序?还是…… 正在我们犹…...
【INTEL(ALTERA)】Agilex7 FPGA Development Kit DK-DEV-AGI027R1BES编程/烧录/烧写/下载步骤
DK-DEV-AGI027R1BES 的编程步骤: 将外部 USB Blaster II 连接到 J10- 外部 JTAG 接头。将交换机 SW5.3 设置为 ON(首次)。打开 英特尔 Quartus Prime Pro Edition 软件编程工具。单击 硬件设置 ,然后选择 USB Blaster II。将硬件…...
大文件分块上传的代码,C++转delphi,由delphi实现。
在 Delphi 中,我们通常使用 IdHTTP 或 TNetHTTPClient 等组件来处理 HTTP 请求 原文章链接: 掌握分片上传:优化大文件传输的关键策略 【C】【WinHttp】【curl】-CSDN博客 改造思路: 文件分块处理:使用 TFileStream 来…...
MongoDB表的主键可以重复?!MongoDB的坑
MongoDB表的主键可以重复?! 眼见为实? 碰到一个奇怪的现象, MongoDB的一个表居然有两个一样的_id值! 再次提交时,是会报主键冲突的。那上图,为什么会有两个一样的_id呢? 将它们的…...
C++初阶-list类的模拟实现
list类的模拟实现 一、基本框架1.1 节点类1.2 迭代器类1.3 list类 二、构造函数和析构函数2.1 构造函数2.2 析构函数 三、operator的重载和拷贝构造3.1 operator的重载3.2 拷贝构造 四、迭代器的实现4.1 迭代器类中的各种操作4.1 list类中的迭代器 五、list的增容和删除5.1 尾插…...
RecyclerView中的设计模式解读
一.观察者模式:(待完善,这个写的不咋地,没理解透彻) 1.观察者模式的概念: (1)消息传递方向:被观察者->观察者 (2)代码实现: 首…...
ACwing算法备战蓝桥杯——Day30——树状数组
定义: 树状数组是一种数据结构,能将对一个区间内数据进行修改和求前缀和的这两种操作的最坏时间复杂度降低到O(logn); 实现所需变量 变量名变量数据类型作用数组a[]int存储一段区间数组tr[]int表示树状数组 主要操作 函数名函数参数组要作用lowbit()int…...
elementui + vue2实现表格行的上下移动
场景: 如上,要实现表格行的上下移动 实现: <el-dialogappend-to-bodytitle"条件编辑":visible.sync"dialogVisible"width"60%"><el-table :data"data1" border style"width: 100%&q…...
2、快速搞定Kafka术语
快速搞定Kafka术语 Kafka 服务端3层消息架构 Kafka 客户端Broker 如何持久化数据小结 Kafka 服务端 3层消息架构 第 1 层是主题层,每个主题可以配置 M 个分区,而每个分区又可以配置 N 个副本。第 2 层是分区层,每个分区的 N 个副本中只能有…...
CSS新手入门笔记整理:CSS3选择器
属性选择器 属性选择器,指的是通过“元素的属性”来选择元素的一种方式。 语法 元素[attr^"xxx"]{} 元素[attr$"xxx"]{} 元素[attr*"xxx"]{} 选择器 说明 E[attr^"xxx"] 选择元素E,其中E元素的attr属性是…...
D34|不同路径
62.不同路径 初始思路: 1)确定dp数组以及下标的含义: dp[i][i]存放到第i1行和第i1列的方法数 2)确定递推公式: dp[i][i] dp[i -1][i] dp[i][i-1] 3)dp数组如何初始化 第0行是1; 第0列是1&a…...
【运维】Kafka高可用: KRaft(不依赖zookeeper)集群搭建
文章目录 一. kafka kraft 集群介绍1. KRaft架构2. Controller 服务器3. Process Roles4. Quorum Voters5. kraft的工作原理 ing 二. 集群安装1. 安装1.1. 配置1.2. 格式化 2. 启动测试2.1. 启功节点服务2.2. 测试 本文主要介绍了 kafka raft集群架构: 与旧架构的不…...
Python 自动化之批量处理文件(一)
批量新建目录、文档Pro版本 文章目录 批量新建目录、文档Pro版本前言一、做成什么样子二、基本思路1.引入库2.基本架构 三、用户输入模块四、数据处理模块1.excel表格数据获取2.批量数据的生成 总结 前言 我来写一个不一样的批量新建吧。在工作中,有些同学应该会遇…...
力扣72. 编辑距离
动态规划 思路: 假设 dp[i][j] 是 word1 前 i 个字母到 word2 前 j 个字母的编辑距离;那么状态 dp[i][j] 状态的上一个状态有: dp[i - 1][j],word1 前 i - 1 个字母到 word2 前 j 个字母的编辑距离,此状态再插入一个字…...
Unity中 URP Shader 的纹理与采样器的分离定义
文章目录 前言一、URP Shader 纹理采样的实现1、在属性面板定义一个2D变量用于接收纹理2、申明纹理3、申明采样器4、进行纹理采样 二、申明纹理 和 申明采样器内部干了什么1、申明纹理2、申明采样器 三、采样器设置采样器的传入格式1、纹理设置中,可以看见我们的采样…...
Electron学习第一天 ,启动项目
之前在安装官网的步骤操作,结果报错,找了好多办法,最后这种办法成功启动项目,并且没有报错,特此记录 特别提醒,最好安装淘宝镜像,npm 太慢,会导致报错问题,解决起来个人觉…...
WebService技术--随笔1
1.WebService 发展史 创建阶段(1990 年代末至 2000 年代初):在这个阶段,XML-RPC 和 SOAP 协议被引入,为跨平台和跨语言的应用程序集成提供了基础。XML-RPC 提供了一种基于 XML 的远程过程调用机制,而 SOAP…...
如何使用Docker将.Net6项目部署到Linux服务器(一)
目录 一 配置服务器环境 1.1 配置yum 1.1.1 更新yum包 1.1.2 yum命令 1.2 配置docker …...
第4章-第3节-Java中跟数组相关的几个算法以及综合应用
在写这篇博文之前,先大概说明一下,就是很常见的数组算法如求最大值、一维数组的遍历等,这里就不去专门说明了,只说一些有代表性的,然后就是冒泡排序算法很容易查阅到,这里也不专门说明了,只说明…...
AlexNet(pytorch)
AlexNet是2012年ISLVRC 2012(ImageNet Large Scale Visual Recognition Challenge)竞赛的冠军网络,分类准确率由传统的 70%提升到 80% 该网络的亮点在于: (1)首次利用 GPU 进行网络加速训练。 ÿ…...
【单调栈 】LeetCode321:拼接最大数
作者推荐 【动态规划】【广度优先搜索】LeetCode:2617 网格图中最少访问的格子数 本文涉及的知识点 单调栈 题目 给定长度分别为 m 和 n 的两个数组,其元素由 0-9 构成,表示两个自然数各位上的数字。现在从这两个数组中选出 k (k < m n) 个数字…...
TikTok与虚拟现实的完美交融:全新娱乐时代的开启
TikTok,这个风靡全球的短视频平台,与虚拟现实(VR)技术的深度结合,为用户呈现了一场全新的娱乐盛宴。虚拟现实技术为TikTok带来了更丰富、更沉浸的用户体验,标志着全新娱乐时代的开启。本文将深入探讨TikTok…...
PXI/PCIe/VPX机箱 ARM|x86 + FPGA测试测量板卡解决方案
PXI便携式测控系统是一种基于PXI总线的便携式测试测控系统,它填补了现有台式及机架式仪器在外场测控和便携测控应用上的空白,在军工国防、航空航天、兵器电子、船舶舰载等各个领域的外场测控场合和科学试验研究场合都有广泛的应用。由于PXI便携式测控系统…...
ES6 面试题 | 12.精选 ES6 面试题
🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…...
如何在宝塔中安装wordpress/北京网站建设公司哪家好
Runnable的缺陷 不能返回一个返回值也不能抛出checked Exception,只能trycatch Callable接口 类似于 Runnable,被其他线程执行的任务实现call方法有返回值 Future类 在并发编程中,我们经常用到非阻塞的模型,在之前的多线程的三…...
有赞网站开发/推广app最快的方法
Feign简介 Feign是Netflix开发的声明式,模板化的HTTP客户端,其灵感来自Retrofit,JAXRS-2.0以及WebSocket.Feign可帮助我们更加便捷,优雅的调用HTTP API。在SpringCloud中,使用Feign非常简单——创建一个接口,并在接口上…...
wordpress後台小程序/网络推广计划方案
介绍: 支持第三方云储存,支持本地、阿里云OSS、腾讯云COS、七牛云、又拍云。 支持多图上传、拖拽上传、上传预览、全屏预览、页面响应式布局。 简洁的图片管理功能,支持鼠标右键、单选多选等操作。 强大的图片预览功能,支持响应式…...
h5网站建设价格/网络营销心得体会300字
基于Cesium的材质线插件,引入即可使用,需要的自取。 插件地址:传送门 在线访问: 查看地址 使用 // 自定义纹理材质let MaterialLineImage [./src/line.png,./src/line2.png,./src/line3.png,]// colorlet colors [new Cesium.Color(77 …...
网站明确内容/媒体:北京不再公布各区疫情数据
git地址修改需要重新clone、修改地址,现将方法记录如下: 1.Clone新地址: 2.在Eclipse中打开Git Respository Exploring 视图: 3.在左侧出现所有项目: 4.右键点击要修改的项目: 5.在选项中选择…...
烟台网站建设设计开发/黄冈网站推广
<text decode"{{true}}" > </text>...