github开源书籍使用gitbook生成pdf版文件

前几天,再github上看到一个非常好的开源书籍项目,通过gitbook网站可以在线查看书籍内容,由于在线查看不太方便,想着将项目在生成本地pdf查看,遂在网络上查找github项目生成pdf文件的工具。经过一番查找,看到几篇关于使用gitbook工具生成pdf的文章,甚是欢喜,于是按照操作步骤开展配置,由于网络、工具版本等问题,几经周折终于生成成功。为减少大家走弯路,遂分享此篇,供大家参考,望大家取长补短,取其精华,按照此篇所述,可成功配置成功。现将具体操作步骤和错误解决办法赋予下文,文中方法和一些截图均来自网上,借鉴于此,莫怪莫怪。本人使用系统 kali

第一步:安装nodejs

gitbook依赖于nodejs,需要先配置nodejs环境

1、安装nodejs:sudo apt-get install nodejs  

2、安装nodejs管理工具npm:sudo apt-get install npm

错误更改:由于该方法安装的是最新版本的nodejs,所以与gitbook的兼容性有问题,有时会报错:if (cb) cb.apply(this, arguments),cb.apply is not a function。此时需要

直接打开报错的文件:
polyfills.js
错误的位置在代码的第287行,就是这个死乞白赖的函数!!!

function statFix (orig) {
if (!orig) return orig
// Older versions of Node erroneously returned signed integers for
// uid + gid.
return function (target, cb) {
return orig.call(fs, target, function (er, stats) {
if (!stats) return cb.apply(this, arguments)
if (stats.uid < 0) stats.uid += 0x100000000
if (stats.gid < 0) stats.gid += 0x100000000
if (cb) cb.apply(this, arguments)
})
}
}
这个函数的作用是用来修复node.js的一些bug,但是我就为了学个gitbook,没必要难为我自己!
所以,我就找到这个函数的调用:
fs.stat=statFix(fs.stat)

fs.fstat=statFix(fs.fstat)

fs.lstat=statFix(fs.lstat)

将这三行直接用 // 注释掉就ok了

第二步:安装gitbook工具

使用npm安装gitbook:npm install gitbook-cli -g

第三步:下载github的源码

使用命令:git clone https://github.com/项目目录

第四步:安装ebook-convert

使用gitbook生成pdf还需要安装ebook-convert:sudo -v && wget -nv -O- https://download.calibre-ebook.com/linux-installer.py | sudo python -c "import sys; main=lambda:sys.stderr.write('Download failed\n'); exec(sys.stdin.read()); main()"

第五步:生成pdf

进入到项目目录:gitbook pdf

 

按照上述操作一定可以成功生成pdf。

 

posted @ 2021-08-24 16:41  桃花落,闲池阁  阅读(1630)  评论(0编辑  收藏  举报