首页 > 其他分享 >如何用gitbook写书

如何用gitbook写书

时间:2023-06-15 15:04:21浏览次数:28  
标签:info md ch1 create 写书 gitbook 如何 pdf


假设你

  • 已经知道如何编写Markdown
  • 已经安装好gitbook软件

目标

生成一本小书,它有前言,章节1,章节2,后记。例如:

简介
第一章:如何造火箭
     1. 燃料学
     2. 空气动力学
     3. 总装工程学
第二章:如何回收火箭
     1. 自动控制原理
     2. 二次利用要点
结束

准备工作

建一个写书的目录,以后所有工作都在这个目录下搞。例如

/Users/raywill/gitbook/first

开干!生成书籍框架

在电脑上建立整本书的目录结构,以及文件结构。

我们可以自己一步步用文件管理器新建文件夹新建文件,不过这么做太累了,gitbook可以帮我们自动生成。我们需要做的是提供一个叫做SUMMARY.md的文件给gitbook,然后调用

gitbook init

就能自动生成目录结构及每个章节的markdown文件。

我们先为我们的新书写SUMMARY.md,内容如下:

[简介](README.md)
* [第一章:如何造火箭](ch1/build.md)
 - [1. 燃料学](ch1/fuel.md)
 - [2. 空气动力学](ch1/air.md)
 - [3. 总装工程学](ch1/enginer.md)
 - [小结](ch1/WRAPUP.md)
* [第二章:如何回收火箭](ch2/recycle.md)
 - [1. 自动控制原理](ch2/ac.md)
 - [2. 二次利用要点](ch2/key.md)
* [结束](end/SUMMARY.md)

写好后,执行

gitbook init

可以看到屏幕输出如下:

raywill:first raywill$ gitbook init
info: init book at /Users/raywill/gitbook/first
info: detect structure from SUMMARY (if it exists)
info: create README.md
info: create ch1/build.md
info: create ch1/fuel.md
info: create ch1/air.md
info: create ch1/enginer.md
info: create ch1/WRAPUP.md
info: create ch2/recycle.md
info: create ch2/ac.md
info: create ch2/key.md
info: create end/SUMMARY.md
info: initialization is finished

Done, without error

可见,gitbook按照我们的要求,帮我们生成好了所有文件。生成的文件结构如下:

.
├── README.md
├── SUMMARY.md
├── ch1
│   ├── WRAPUP.md
│   ├── air.md
│   ├── build.md
│   ├── enginer.md
│   └── fuel.md
├── ch2
│   ├── ac.md
│   ├── key.md
│   └── recycle.md
└── end
    └── SUMMARY.md

每个文件的第一行就是我们写的章节标题。

写书

这个时候,按照markdown的格式逐个填充内容到文件即可。至于用什么编辑器写Markdown文件,随你了。本地的,在线的,都成。

生成电子书

执行如下命令生成pdf格式电子书:

gitbook pdf .

命令由三部分组成:命令(gitbook),生成的格式(pdf),markdown源文件位置(.,点表示当前目录)。

命令运行后可以看到如下输出,表示生成pdf成功。这时候,目录里面多了一个pdf文件。

raywill:first raywill$ gitbook pdf .
info: loading book configuration....OK
info: load plugin gitbook-plugin-highlight ....OK
info: load plugin gitbook-plugin-search ....OK
info: load plugin gitbook-plugin-sharing ....OK
info: load plugin gitbook-plugin-fontsettings ....OK
info: >> 4 plugins loaded
info: start generation with pdf generator
info: clean pdf generatorOK
info: write SUMMARY.html
info: start conversion to pdf ....OK
info: generation is finished
info: >> 1 file(s) generated

Done, without error

如果希望生成epub或者mobi格式的,分别执行下面的命令即可:

gitbook epub .
gitbook mobi .

完结

有任何疑问欢迎留言。


标签:info,md,ch1,create,写书,gitbook,如何,pdf
From: https://blog.51cto.com/u_16162111/6492519

相关文章

  • 详解MySQL Server端如何发送结果集给客户端
    MySQLServer和Client之间的交互有一套定义得很明确的协议,称为MySQLClient/ServerProtocol。写数据库的人,只需要遵循这套协议来写程序,就能让自己的数据库被各种MySQL客户端连接,如mysql命令行,phpmysql,JDBC等等。这是一个非常诱人的设计选择(DesignChoice)!如果自己实现一套协议,写......
  • 如何在矩池云上安装和使用 Stata
    Stata是一款功能强大的统计分析软件,本文提供了如何在矩池云安装使用Stata,以及如何在Jupyter中使用Stata的简要教程。安装Stata时需要确保按照官方指南进行操作,Stata为付费软件,用户需要自己购买相关软件,将软件安装包上传到矩池云网盘,再根据本教程租用机器安装使用。上传......
  • QA|如何给我们的自动化测试代码增加日志记录?|Loguru
    这里我们用的是loguru,logging虽然是自带的,但确实使用起来比较繁琐,loguru在Logging基础上增加了很多个性化功能,使用起来也比较简单,所以就使用loguru代码如下:1#cal_testlog.py23fromloguruimportlogger4fromconfigimportBASE_DIR5importtime67now_dt......
  • 如何寻找 C++ 程序中的大对象?
    问题背景大型应用程序中包含成千上万个C++对象,这些对象大小如何?有没有一些大对象很废?例如,在OceanBase0.4开源版本中Top10的大对象,最大的一个占58MB内存:排序大小类名158,720,304rootserver::ObRootTable2220,163,008updateserver::ObUpdateServerMain320,15......
  • 如何通过Java中的对象值来同步块
    问题有时,我们需要通过变量的值来同步代码块。为了解这个问题,我们将考虑一个简单的银行应用程序,它对客户的每次转账进行以下操作:通过此外部Web服务转移评估现金返还金额(CashBackService)在数据库中执行汇款(AccountService)更新现金返还评估系统中的数据(CashBackService)汇款操作如下:pub......
  • 如何在Spring Boot中使用Hibernate Natural ID
    首先,让我们关注所需类的实现。完成所有这些后,我们将能够为具有自然ID的实体提供存储库。用自然ID编写实体让我们考虑以下具有自动生成ID和自然ID(code列)的实体。这只是一个使用一个自然ID的典型实体@NaturalId:@实体publicclassProductimplementsSerializable{priva......
  • windows环境下操作,同一台机器 如何跑两个mysql服务?
    在同一台机器上运行两个MySQL服务是可行的,但需要注意以下几点:确保端口号不冲突。每个MySQL服务都需要监听一个独立的端口,以便客户端可以连接到正确的服务。配置文件的区分。每个MySQL实例需要有自己独立的配置文件,包括数据存储路径、日志文件路径等信息。确保资源......
  • 服务器该如何处理大数据 45.113.203.x
    当大量设备连接服务器,大量数据上传到服务器,服务器要如何提高处理能力,来处理这些数据,数据源为设备数据。服务器如何处理数据可以由以下几个点考虑:1、排队列处理机制数据涌入服务器,但还是能够区分先后顺序,按照数据传输时序将数据摘要排入队列,然后服务器按队列依次进行处理。2、数据分......
  • 如何从CLI管理阿里巴巴MySQL数据库
    阿里云提供高度可用的按需MySQL,SQLServer和PostgreSQL数据库,作为其ApsaraDBforRDS  (关系数据库服务)的一部分。RDS易于设置和部署。该服务处理数据库服务器的所有管理任务,包括在发生灾难时进行配置,修补和恢复。除了这个即用型数据库服务,您还可以选择从弹性计算服务(ECS)实例设置......
  • 如何进行有效的软件测试
    在软件开发过程中,软件测试是不可或缺的一步。只有经过充分的测试,才能保证软件的质量和稳定性。但是,软件测试也并非一成不变的,不同的软件需要采用不同的测试方案。那么,如何进行有效的软件测试呢?下面将为大家介绍几点建议。1.定义测试目标和范围在进行软件测试之前,首先需要明确测试......