一、Gitbook概述

GitBook 是一个基于 Node.js 的命令行工具,可使用 Github/Git 和 Markdown 来制作精美的电子书,GitBook 并非关于 Git 的教程。

GitBook支持输出多种文档格式:

  • 静态站点:GitBook默认输出该种格式,生成的静态站点可直接托管搭载Github Pages服务上;

  • PDF:需要安装gitbook-pdf依赖;

  • eBook:需要安装ebook-convert;

  • 单HTML网页:支持将内容输出为单页的HTML,不过一般用在将电子书格式转换为PDF或eBook的中间过程;

  • JSON:一般用于电子书的调试或元数据提取。

使用GitBook制作电子书,必备两个文件:README.md和SUMMARY.md。README.md多为电子书的简介内容,SUMMARY.md用来定义电子书章节结构,如:

同时,GitBook还支持嵌入JavaScript的交互式内容,未来版本会支持Python、Ruby等语言。

二、gitbook的安装

以下是来自gitbook项目页上提供的安装方法:

  1. GitBook can be installed from NPM using:
  2. $ npm install gitbook-cli -g
  3. Create the directories and files for a book from its SUMMARY.md file (if existing) using
  4. $ gitbook init
  5. You can serve a repository as a book using:
  6. $ gitbook serve
  7. Or simply build the static website using:
  8. $ gitbook build

三、gitbook的基本规则

Gitbook需要2个基本文件:

  • README.md
  • SUMMARY.md

README.md是关于你的书的介绍,而SUMMARY.md中则包含了书目,即章节结构,它的格式大致是:

  1. * [第1章](c1.md)
  2. * [第1节](c1s1.md)
  3. * [第2节](c1s2.md)
  4. * [第2章](c2.md)

剩下的东西就很好理解了,你只需要编写相应章节即可。在编辑完README.md和SUMMARY.md后,你可以运行以下命令:

  1. $ gitbook serve -p 8080 .

Gitbook首先把你的Markdown文件编译为HTML文件,并根据SUMMARY.md生成书的目录。所有生存的文件都保存在当前目录下的一个名为_book的子目录中。完成这些工作后,Gitbook会作为一个HTTP Server运行,并在8080端口监听HTTP请求。

运行以上命令后,打开浏览器,在地址栏输入:http://localhost:8080即可看到你的书页了。

其中位于左侧书目顶部的Introduction一节就编译自README.md,而书目本身自编译自SUMMARY.md。你要在自己的网站上发布新书,只需把_book目录复制到服务器相应目录即可。至此Gitbook的基本用法就介绍完毕。下面简单讨论下Gitbook的其他应用,包括Gitbook的插件、与Github的融合、Gitbook客户端、Gitbook平台,以及Gitbook的问题。

四、Gitbook的插件支持

Gitbook可以生成HTML,因此它支持一些外部的JavaScript文件嵌入到HTML中,例如Google统计、Disqus评论系统等。以下以页面中嵌入Disqus评论为例。

首先是安装Gitbook的Disqus插件。

  1. $ npm install gitbook-plugin-disqus

然后建立一个book.json文件,其格式如下:

  1. {
  2. "plugins": ["disqus"],
  3. "pluginsConfig": {
  4. "disqus": {
  5. "shortName": "NAME-FROM-DISQUS"
  6. }
  7. }
  8. }

把上面的NAME-FROM-DISQUS修改为你在Disqus上的项目名即可。

再次运行命令:

  1. $ gitbook serve -p 8080 .

并刷新浏览器,即可看到附加了Disqus评论的页面。

与Github的融合

Gitbook的博客上说Github提供了对Gitbook的特殊支持,但我没有测试。只是依然把源文件保存在Github上,然后用Gitbook去编译。期待Gitbook做的更好。

Gitbook客户端

Gitbook客户端支持Mac、Windows、Linux。我在Mac和Windows简单尝试了这个客户端,总体而言可以用。但也仅仅是可以用而已。你可以在客户端里编辑Markdown文件,并提供一个实时的预览窗口;可以关联到你的Gitbook账户,并把内容同步到gitbook.io,并为你生成PDF等。说句题外话,如果你要Markdown的客户端的话,飞象马克更好用,至少Vim编辑模式你得支持啊。

五、Gitbook的问题

Gitbook网站的访问速度很慢。可以在生成_book目录后,把其中的HTML文件和gitbook子目录(包含字体和js文件等)复制到自己的网站上。

Gitbook提供的push功能不能用。push.gitbook.io这个地址无法访问,不知是否是临时性服务故障。

Gitbook生成PDF的中文字体极其难看。万分期待改进。话说Gitbook生存的HTML上的中文非常漂亮。

GitBook+Markdown制作精美电子书相关推荐

  1. 详解Gitbook制作精美电子书

    介绍一个实用的功能,看下图,是用gitbook做的电子书(文档.教程),左侧是目录,右侧是内容,很方便网页浏览查阅,这样的电子书该怎么制作?总结了一篇入门教程,下面所有步骤都是我试验过几次总结的,按照 ...

  2. GitBook是一个命令行工具(Node.js库),我们可以借用该工具使用Github/Git和Markdown来制作精美的图书,但它并不是一本关于Git的教程哟。...

    GitBook是一个命令行工具(Node.js库),我们可以借用该工具使用Github/Git和Markdown来制作精美的图书,但它并不是一本关于Git的教程哟. 支持输出多种格式 GitBook支 ...

  3. mdbook通过markdown制作电子书(代替gitbook)

    mdbook通过markdown制作电子书(代替gitbook) 环境: mdbook: v0.4.28 前言 gitbook制作电子书大家已经非常熟悉了,但是对于gitbook工具官方已经不再维护了 ...

  4. gitbook通过markdown制作电子书

    gitbook通过markdown制作电子书 环境: gitbook-cli: 2.3.2(2017-07-14) gitbook: 3.2.3(2017-08-03) Node.js: 10.24. ...

  5. 使用GitBook本地制作电子书

    前言 对于经常阅读的人来说,制作本地电子书,算是刚需了. 网上的很多步骤不太完整,所以我特地整理出一个详细的教程.亲测有效,一劳永逸. 大致的思路是: 本地安装 gitbook 安装 calibre, ...

  6. 使用 gitbook 制作 pdf 电子书

    安装gitbook 安装 node.js 安装 gitbook 安装 Calibre 终端输入: ln -s /Applications/calibre.app/Contents/MacOS/eboo ...

  7. Markdown转PDF→利用 Markdown 制作电子书|非常简单

    Markdown转PDF→利用 Markdown 制作电子书 前言 遇到什么问题就解决什么问题,什么不会就学什么. 是这样的,因为最近在看数据分析的书籍<利用Python进行数据分析 原书第2版 ...

  8. 基于Markdown格式的电子书生成工具大比拼:gohugo、mdbook和peach

    基于Markdown格式文件写博客已经很多年了,一直使用的是Wordpress的markdown插件,由于各种遗留原因,一直没有转换到直接使用静态站点的方式.博客文章之间一般来说多是独立篇章,少有关联 ...

  9. 利用WPS 2013文字制作精美的信纸的方法

    一份好看的信纸能令你的文字更加多姿多彩,一份合适的信纸能令你的文案更加专业.掌握以下三步,你也可以用WPS 2013文字制作出自己独一无二的信纸! 第一步:设置文档并插入图片; 首先,新建空白文档,默 ...

最新文章

  1. js回调流程控制, 更高级, 更优雅
  2. 实战并发编程 - 08基于Guarded Suspension模式优化轮询while(true)
  3. 区块链BaaS云服务(31) 吉利 Concordium区块链
  4. 系统间通信1:阻塞与非阻塞式通信A
  5. 关于Window操作系统中对Oracle的性能监控
  6. 港科大陈凯、杨强教授新书重磅发布,系统揭秘隐私计算 | 文末送书
  7. easyui 如何为标签动态追加属性实现渲染效果
  8. 40. HTTP 协议(1)
  9. 【花朵识别】基于matlab模板匹配花朵分类【含Matlab源码 472期】
  10. 数据库技术与应用课程设计-学生信息管理系统
  11. discord android .apk,Discord语音交流app
  12. 毕业了,我的四年大学:平凡但不平庸(写给每一位想要认真学习的小伙伴)
  13. 音标对照表—kk,88
  14. gmail 设置 smtp_如何在Linux上使用Gmail或SMTP设置电子邮件警报
  15. 身份证OCR识别,居民二代身份证识别第三方数据接口
  16. PHP 垃圾回收机制
  17. My summery
  18. [翻译]在Windows版或MacOS版的Microsoft Edge上安装一个谷歌浏览器拓展
  19. [刷题] 关于LeetCode的前言
  20. 机器学习的安全及隐私保护研究

热门文章

  1. 前端模块化开发到底是什么?
  2. 十进制转二进制(C语言实现)
  3. 二极管正向压降测试仪适合在哪里应用?
  4. 2022年全球市场注射器再盖装置总体规模、主要生产商、主要地区、产品和应用细分研究报告
  5. lisp怎么改成vlx_分解vlx - AutoLISP/Visual LISP 编程技术 - CAD论坛 - 明经CAD社区 - Powered by Discuz!...
  6. Ubuntu 16.04 配置 B-Human 2016
  7. 写的几个函数,关键词描红,搜索关键词过滤,生成SQL查询关键词
  8. 2101-正方形面积-JAVA
  9. cesiumjs开发实践 (一)
  10. ABBYYFineReader15免费电脑pdf文档文字识别软件