新版gitbook导出pdf
最近想把自己写的一个gitbook转成pdf分享出去,突然发现最新的gitbook版本已经不支持导出PDF了。于是在网上找了好久终于被我发现了三个将gitbook转换成pdf的方式,现分享给大家。我使用的是mac系统,如果是其他系统大家可以查找相应的方案。
gitbook自带的npm模块gitbook
npm gitbook的最新版本是3.2.3,最新更新时间是1年前,官方估计已经放弃这个模块了。不过还好,这个模块还能够使用。 具体步骤如下:
-
安装npm
通常来说,安装好nodejs后会自动安装相应的npm。
brew install nodejs
-
安装gitbook
npm install gitbook -g npm install gitbook-cli -g
-
安装calibre
直接到官网下载: https://download.calibre-ebook.com/
安装好calibre之后,需要将 /Applications/calibre.app/Contents/MacOS/ebook-convert 链接到/usr/local/bin/ebook-convert
ln -s /Applications/calibre.app/Contents/MacOS/ebook-convert /usr/local/bin/ebook-convert
-
生成PDF
在所有的一切都准备好之后就可以运行下面的命令生成pdf了。
gitbook pdf
注意,calibre要下载3.*版本,否则在gitbook pdf 的过程中会卡住。别问我是怎么知道的,我被这个问题坑了好久。
使用vscode的插件Markdown PDF
vscode是一个非常强大的文本编辑工具,我们可以可以使用它的Markdown PDF插件来将markdown来转换成pdf。
它有一个markdown-it-include的功能,可以将一个markdown文件中引入的其他markdown文件包含进来。
考虑下面的文件结构:
├── [plugins]
│ └── README.md
├── CHANGELOG.md
└── README.md
如果我们新建一个md文件,其内容如下:
README Content
:[Plugins](./plugins/README.md)
:[Changelog](CHANGELOG.md)
导出为PDF之后,其内容如下:
Content of README.md
Content of plugins/README.md
Content of CHANGELOG.md
这样就可以通过一个文件来包含多个md文件。当然这样也有一个缺点就是引入的文件缺少层级概念也无法生成标签。
使用CommandBox GitBook Exporter
第三种方式就是使用forgebox的GitBook Exporter工具了。
方法如下:
-
安装CommandBox
brew install commandbox
-
在box中安装gitbook-exporter
box install gitbook-exporter
-
在gitbook控制页面台中,导出你要生成的gitbook的信息:
Advanced->Danger Zone->Export -
导出PDF和html
CommandBox> gitbook export sourcePath=/path/to/ExportFolder
使用上面的命令可以同时导出pdf和html,其优点就是比使用官方gitbook命令导出的文件要小很多,缺点就是pdf中文会出现乱码(暂时没有找到解决方法)
好了,三种方法都教给大家了,感觉去试一下吧。
更多教程请参考 flydean的博客
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类