GitBook+Markdown制作精美电子书
一、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项目页上提供的安装方法:
- GitBook can be installed from NPM using:
- $ npm install gitbook-cli -g
- Create the directories and files for a book from its SUMMARY.md file (if existing) using
- $ gitbook init
- You can serve a repository as a book using:
- $ gitbook serve
- Or simply build the static website using:
- $ gitbook build
三、gitbook的基本规则
Gitbook需要2个基本文件:
- README.md
- SUMMARY.md
README.md是关于你的书的介绍,而SUMMARY.md中则包含了书目,即章节结构,它的格式大致是:
- * [第1章](c1.md)
- * [第1节](c1s1.md)
- * [第2节](c1s2.md)
- * [第2章](c2.md)
剩下的东西就很好理解了,你只需要编写相应章节即可。在编辑完README.md和SUMMARY.md后,你可以运行以下命令:
- $ 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插件。
- $ npm install gitbook-plugin-disqus
然后建立一个book.json文件,其格式如下:
- {
- "plugins": ["disqus"],
- "pluginsConfig": {
- "disqus": {
- "shortName": "NAME-FROM-DISQUS"
- }
- }
- }
把上面的NAME-FROM-DISQUS修改为你在Disqus上的项目名即可。
再次运行命令:
- $ 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制作精美电子书相关推荐
- 详解Gitbook制作精美电子书
介绍一个实用的功能,看下图,是用gitbook做的电子书(文档.教程),左侧是目录,右侧是内容,很方便网页浏览查阅,这样的电子书该怎么制作?总结了一篇入门教程,下面所有步骤都是我试验过几次总结的,按照 ...
- GitBook是一个命令行工具(Node.js库),我们可以借用该工具使用Github/Git和Markdown来制作精美的图书,但它并不是一本关于Git的教程哟。...
GitBook是一个命令行工具(Node.js库),我们可以借用该工具使用Github/Git和Markdown来制作精美的图书,但它并不是一本关于Git的教程哟. 支持输出多种格式 GitBook支 ...
- mdbook通过markdown制作电子书(代替gitbook)
mdbook通过markdown制作电子书(代替gitbook) 环境: mdbook: v0.4.28 前言 gitbook制作电子书大家已经非常熟悉了,但是对于gitbook工具官方已经不再维护了 ...
- gitbook通过markdown制作电子书
gitbook通过markdown制作电子书 环境: gitbook-cli: 2.3.2(2017-07-14) gitbook: 3.2.3(2017-08-03) Node.js: 10.24. ...
- 使用GitBook本地制作电子书
前言 对于经常阅读的人来说,制作本地电子书,算是刚需了. 网上的很多步骤不太完整,所以我特地整理出一个详细的教程.亲测有效,一劳永逸. 大致的思路是: 本地安装 gitbook 安装 calibre, ...
- 使用 gitbook 制作 pdf 电子书
安装gitbook 安装 node.js 安装 gitbook 安装 Calibre 终端输入: ln -s /Applications/calibre.app/Contents/MacOS/eboo ...
- Markdown转PDF→利用 Markdown 制作电子书|非常简单
Markdown转PDF→利用 Markdown 制作电子书 前言 遇到什么问题就解决什么问题,什么不会就学什么. 是这样的,因为最近在看数据分析的书籍<利用Python进行数据分析 原书第2版 ...
- 基于Markdown格式的电子书生成工具大比拼:gohugo、mdbook和peach
基于Markdown格式文件写博客已经很多年了,一直使用的是Wordpress的markdown插件,由于各种遗留原因,一直没有转换到直接使用静态站点的方式.博客文章之间一般来说多是独立篇章,少有关联 ...
- 利用WPS 2013文字制作精美的信纸的方法
一份好看的信纸能令你的文字更加多姿多彩,一份合适的信纸能令你的文案更加专业.掌握以下三步,你也可以用WPS 2013文字制作出自己独一无二的信纸! 第一步:设置文档并插入图片; 首先,新建空白文档,默 ...
最新文章
- js回调流程控制, 更高级, 更优雅
- 实战并发编程 - 08基于Guarded Suspension模式优化轮询while(true)
- 区块链BaaS云服务(31) 吉利 Concordium区块链
- 系统间通信1:阻塞与非阻塞式通信A
- 关于Window操作系统中对Oracle的性能监控
- 港科大陈凯、杨强教授新书重磅发布,系统揭秘隐私计算 | 文末送书
- easyui 如何为标签动态追加属性实现渲染效果
- 40. HTTP 协议(1)
- 【花朵识别】基于matlab模板匹配花朵分类【含Matlab源码 472期】
- 数据库技术与应用课程设计-学生信息管理系统
- discord android .apk,Discord语音交流app
- 毕业了,我的四年大学:平凡但不平庸(写给每一位想要认真学习的小伙伴)
- 音标对照表—kk,88
- gmail 设置 smtp_如何在Linux上使用Gmail或SMTP设置电子邮件警报
- 身份证OCR识别,居民二代身份证识别第三方数据接口
- PHP 垃圾回收机制
- My summery
- [翻译]在Windows版或MacOS版的Microsoft Edge上安装一个谷歌浏览器拓展
- [刷题] 关于LeetCode的前言
- 机器学习的安全及隐私保护研究
热门文章
- 前端模块化开发到底是什么?
- 十进制转二进制(C语言实现)
- 二极管正向压降测试仪适合在哪里应用?
- 2022年全球市场注射器再盖装置总体规模、主要生产商、主要地区、产品和应用细分研究报告
- lisp怎么改成vlx_分解vlx - AutoLISP/Visual LISP 编程技术 - CAD论坛 - 明经CAD社区 - Powered by Discuz!...
- Ubuntu 16.04 配置 B-Human 2016
- 写的几个函数,关键词描红,搜索关键词过滤,生成SQL查询关键词
- 2101-正方形面积-JAVA
- cesiumjs开发实践 (一)
- ABBYYFineReader15免费电脑pdf文档文字识别软件