MacOS使用GitBook制作电子书_weixin_30840573的博客-程序员秘密

技术标签: git  操作系统  markdown  

目录

一、简介

制作电子书的工具有很多,常用的免费工具推荐:

  1. Sigil Ebook Editor
    • 应是最早的电子书制作软件(大概在10年左右就有了)
    • 可视化编辑内容、插入封面、编辑作者、生成目录
  2. ePUBee Maker(ePUBee智多星)
    • 一款Microsoft Word的插件,将Word文档无损的存为电子书
    • 可导入电子书进行编辑,完美的编辑内容与元数据信息
  3. GitBook
    • 同GitHub一样,将电子书作为一个工程,方便的控制版本
    • 提供GitBook Editor直接集成GitBook、Git、Markdown等功能

我选择的是GitBook,因为我是程序员,对git有不一样的信赖。

此文主要对在MacOS上使用GitBook做入门级说明。

二、安装

其实可以直接使用homebrew来安装,这里不做具体说明,命令如下:

brew cask install gitbook gitbook-editor

我采取的的方式是安装 gitbook-cli,具体方式如下:

1. 安装node.js

因为gitbook基于node.js,所以需要先安装node

# 可以先 brew search node 查看版本,然后安装你想要的版本
brew install node

查看版本,即安装是否成功

node -v
npm -v

2. 安装gitbook

# 注意 -g 参数
npm install -g gitbook-cli

安装之后会多出一个 gitbook 的命令,直接操作就可以了

三、使用

  1. 新建文件夹test,作为一本书,并完成初始化

    mkdir test
    cd test
    # 初始化
    gitbook init

    第一次执行时间会比较长,看到如下内容即为成功
    

  2. 执行后在test目录中会生成如下两个文件

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

  3. 编辑这两个文件输入任意内容,目录格式举例

    注明:我这里使用的是 Typora 做为markdown编辑器

  4. 编辑内容之后,回到终端,再次执行 gitbook init ,生成目录,如图:

    然后我们就可以编辑自己的电子书了

四、常用命令

1. 初始化 或 编辑目录

gitbook init

2. 编辑内容之后编译书籍

可以指定目录,默认当前

gitbook build [书籍路径] [输出路径]

3. 启动web服务通过浏览器预览数据

默认端口4000

gitbook serve --port 1234 

4. 生成电子书

# 生成 PDF 格式的电子书
gitbook pdf ./ ./book_name.pdf

# 生成 epub 格式的电子书
gitbook epub ./ ./book_name.epub

# 生成 mobi 格式的电子书
gitbook mobi ./ ./book_name.mobi

初次生成电子书的时候,可能会出现如下错误:

解决方式:根据提示通过安装calibre-ebook来安装ebook-convert

  1. 下载地址:https://calibre-ebook.com/dist/osx
  2. 安装之后,建立软链

    ln -s /Applications/calibre.app/Contents/MacOS/ebook-convert /usr/local/bin/ebook-convert
    

转载于:https://www.cnblogs.com/remainsu/p/macos-shi-yonggitbook-zhi-zuo-dian-zi-shu.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30840573/article/details/101329369

智能推荐

gta java_Java输出hellow world_Unstable Element的博客-程序员秘密

打开java运行环境(就是编写java程序用的软件),然后输入以下语句,点击编译运行后即可输出“Hello World,”。public class HelloWorld { //1public static void main(String args[]){ //2System.out.println("HelloWorld,"); //3}}该法是直接调用java的printfl...

wrodpress_suiyu_eran_的博客-程序员秘密

解压wordpress包解压后的包文件内容移动到网络文件下mv wordpress /data/server/nginx/html/进入移动目录更改配置配置wordpress数据库验证通过浏览器 输入 IP/wordpress出现页面则成功...

rust go java 性能_Java,Go和Rust之间的比较_等灯等灯丶的博客-程序员秘密

这是JAVA,Go和Rust之间的比较。 这不是基准测试,而是更多输出可执行文件大小,内存使用,CPU使用率,运行时要求之间的比较,当然还有一个小的基准测试,可以每秒获取一些请求,并尝试使 一些数字的感觉。内存使用情况空闲,无所事事> Memory usage of each Application while running idle in memory.什么? Go和Rust版本的条形图...

App启动白屏黑屏优化_通用黑屏优化_Android-Yang的博客-程序员秘密

App启动时黑白屏优化     黑白屏问题是app需要重点优化点之一,我以前都是遇到这种比较典型的问题直接上网查找相关的解决方案,筛选直接用,这样的缺点是,只知其表,不知其里,感觉自己这块懂了,但是和人实际表述的时候却说的很片面。细致梳理一下,让自己认知更深刻一下。如果有理解不对的地方,请多多指点。在此先谢过!!1 、app的启动流程图:小结:从图中可以看出app启动分为俩个阶段,一个是系统进程层...

关于使用动态代理创建代理对象是报错 java.lang.ClassCastException: $Proxy0 cannot be cast to 的解决办法_马可菠萝me的博客-程序员秘密

出现此问题的场景一般有以下两种:(1)在Java中使用代理模式创建对象。如何创建代理对象在这就不说了。首先,要为代理对象实现接口,然后生成的代理对象用接口的类型进行接收。此处是使用JDK的代理方式,另一种参考下面的第二种应用场景。(2)在spring框架中使用代理的方式创建对象。Spring的文档中这么写的:Spring AOP部分使用JDK动态代理或者CGLIB来为目标对象创建代

高斯混合模型GMM_高斯肤色模型协方差矩阵 计算_零钱币的博客-程序员秘密

写在前面:    Gaussian Mixture Model (GMM)。事实上,GMM 和 k-means 很像,不过 GMM 是学习出一些概率密度函数来(所以 GMM 除了用在 clustering 上之外,还经常被用于 density estimation ),简单地说,k-means 的结果是每个数据点被 assign 到其中某一个 cluster 了,而 GMM 则给出这些

随便推点

Server Tomcat v9.0 Server at localhost was unable to start within 45 seconds. 运行超时_月下踪影的博客-程序员秘密

Server Tomcat v9.0 Server at localhost was unable to start within 45 seconds. If the server requires more time, try increasing the timeout in the server editor.eclipse运行Tomcat服务器时间超时。解决:打开Windown--&gt...

Linux深入理解TCP协议(connect、bind、listen、accept)及其源码_linux tcp 接收数据_“逛丢一只鞋”的博客-程序员秘密

文章目录TCP建立连接的三次握手过程探究使用Linux Socket api建立TCP连接的过程bind,listenconnect从源码角度分析TCP三次握手的过程对tcp_v4_connect的部分源码分析主要探讨的问题就是connect及bind、listen、accept背后的三次握手相关问题TCP建立连接的三次握手过程首先还是老生常谈的三次握手问题,还是照惯例先来再温习一遍第一次握手:客户端尝试连接服务器,向服务器发送syn(全称是同步序列编号)报文,syn=i,客户端进入SYN_SE

查看、修改linux系统的最大链接数限制、文件描述符限制、端口范围限制、虚拟内存等_逍遥子_的博客-程序员秘密

由于socket在linux中也是用文件描述符来表示,因此最大连接数的修改与文件描述符的限制是同一个问题,1、查看当前文件描述符的限制数目的命令: ulimit -n 2、修改文件描述符的限制数目 2.1 临时改变当前会话:  ulimit -n 65536 2.2 永久变更需要下面两个步骤: 1) 修改/etc/security/limits.conf 文件,

Cesium数字乡村项目模板_cesium 智慧乡村_xt3d的博客-程序员秘密

Cesium数字乡村项目模板效果效果 this.viewer.entities.add({ position: this.position, ellipse: { height: this.height, semiMajorAxis: this.radius * 0.9, semiMinorAxis: this.radius * 0.9,

python之路:Day05 --- 常用模块_a575771207的博客-程序员秘密

本节内容  1.模块介绍  2.sys  3.os  4.time & datetime 模块  5.random  6.shutil  7.hashlib  8.logging  9.re正则表达式   10、shelve  11、xml 处理  12、yaml 处理  13、configpareser  14、subpr...

java HttpClient 下载文件关于 content-length 为 -1 的问题_nanqu2090的博客-程序员秘密

     在系统使用 HttpClient 去服务器下载文件时,以 以下 代码为例,需要使用getContentLength判断content-length的长度 response = getHttpClient().execute(httpPost); log.info("message:download请求状态, param:[status:{}]" ,resp...

推荐文章

热门文章

相关标签