Typora+Gitbook写作并导出pdf

本文介绍了如何安装并配置Gitbook,包括初始化书籍、预览和生成网页。重点讲解了将Gitbook内容转换为PDF的方法,涉及Python和weasyprint的使用。

安装Gitbook

1.首先安装node,查看版本

 node -v
 # v12.16.1

2.安装gitbook,查看版本

 npm install gitbook-cli -g
 # 查看版本
 gitbook -V
 CLI version: 2.3.2
 GitBook version: 3.2.3

Gitbook基本操作

gitbook安装成功以后就可以进行操作了,使用Typora就可以。

1.初始化一本书

 # 执行init命令会在当前目录下创建README.md和SUMMARY.md文件
 $> gitbook init
 warn: no summary file in this book
 info: create README.md
 info: create SUMMARY.md
 info: initialization is finished

README.md是说明文档,而 SUMMARY.md 其实就是书的章节目录,其默认内容如下所示:

 # Summary
 * [Introduction](README.md)

2.启动gitbook,然后在浏览器地址栏中输入 http://localhost:4000 便可预览书籍

 gitbook serve

3.生成网页而不开启服务器,可以使用gitbook build命令

导出pdf

参考文档

首先说明,将gitbook导出为pdf的可选方式本身就不多,这是我觉得还比较好的其中一种。但是缺点也非常明显。导出到pdf是黑白的,不支持代码高亮,还markdown的高亮语法。我认为多少有些不可接受,但是苦于没有其他方式,所以还是用了这一种。

此种方式需要基于Python或者docker,由于我对Python比较熟悉,所以选用了前者,后者尝试了一下有报错,解决不了。

1.安装Python

2.手动安装安装weasyprint依赖,见官网。在安装Python依赖的时候可能会出现版本冲突的情况,这时候查看错误日志,比如aaa依赖冲突了,可以使用pip install aaa单独再安装一次一般就成功了。

3.克隆此github仓库到本地

4.解压克隆的代码后进入此代码根目录,执行pip install -r requirements.txt安装所需依赖

5.执行python gitbook.py {url}导出pdf。比如gitbook本地启动url为http://localhost:4000/second.html,启动gitbook以后,执行python gitbook.py http://localhost:4000/即可导出对应pdf。

效果如下,只能说差强人意,勉强能用吧。

 

### 使用 Node.js 将 GitBook 导出PDF #### 准备工作 为了使用 Node.js 实现 GitBookPDF 的转换,需先安装必要的依赖工具。Node.js 是基于 Chrome V8 JavaScript 运行时构建的平台[^2]。 ```bash npm install gitbook-cli -g npm install puppeteer ``` 上述命令用于全局安装 `gitbook-cli` 和本地项目所需的 Puppeteer 库。前者负责与 GitBook API 交互提取书籍内容;后者是一个无头浏览器自动化库,能够加载网页执行各种操作,包括截屏和生成 PDF 文件[^1]。 #### 创建脚本 创建一个新的 JavaScript 文件来编写主要逻辑: ```javascript const { exec } = require('child_process'); const puppeteer = require('puppeteer'); async function generatePdf(bookUrl, outputPath) { const browser = await puppeteer.launch(); try { const page = await browser.newPage(); await page.goto(bookUrl); // 设置页面尺寸以适应不同设备需求 await page.emulateMediaType('screen'); // 调整纸张大小和其他选项来自定义最终输出 await page.pdf({ path: outputPath, format: 'A4', margin: { top: '20px', bottom: '40px' } }); } finally { await browser.close(); } console.log(`PDF 已成功保存至 ${outputPath}`); } // 替换 URL 地址为你自己的 GitBook 链接 generatePdf('http://example.com/my-gitbook', './my-book.pdf'); ``` 这段代码展示了如何利用 Puppeteer 访问指定的 GitBook 页面,将其渲染成高质量的 PDF 文档。注意要替换 `'http://example.com/my-gitbook'` 为实际的目标地址。 #### 执行脚本 确保所有环境变量配置正确之后,在命令行运行此脚本来启动转换过程: ```bash node your-script-name.js ``` 这将会触发整个流程直至完成 PDF 输出。对于更复杂的场景或特定的需求调整参数即可满足更多样化的应用场景。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值