热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用Gitbook创建文档并导出PDF

导出PDF的方式有很多种,之前使用过马克飞象的导出功能,不过只是简单的导出并不能添加目录,因为源文件是markdown编写的,经过筛选后采用了gitbook的方式进行编写文档并且使

导出PDF的方式有很多种,之前使用过马克飞象的导出功能,不过只是简单的导出并不能添加目录,因为源文件是markdown编写的,经过筛选后采用了gitbook的方式进行编写文档并且使用gitbook pdf .的方式导出为PDF文件。

注意:本机需要有NodeJs环境。

博客原文:http://blog.yuqiyu.com/use-gitbook-export-pdf.html

环境准备

想要使用gitbook,那么我们本机需要进行安装,通过npm命令可以很方便的安装。

安装GitBook

通过npm的方式进行安装gitbook环境,命令如下所示:

npm install gitbook -g

安装calibre & ebook-convert

使用gitbook的导出功能,需要第三方插件ebook的支持,下面针对两种不同的操作系统进行配置环境。

Linux系统

下载地址:https://calibre-ebook.com/download_linux

  • 下载并安装

    sudo -v && wget -nv -O- https://download.calibre-ebook.com/linux-installer.sh | sudo sh /dev/stdin
    
  • 配置软链接

    sudo ln -s /usr/bin/nodejs /usr/bin/node
    

Mac系统

下载地址:https://calibre-ebook.com/download_osx

  • 下载并安装

    下载的为dmg文件直接双击安装即可。

  • 配置软链接

    sudo ln -s ~/Applications/calibre.app/Contents/MacOS/ebook-convert /usr/bin
    

测试安装

安装完成后通过如下命令进行测试是否已经生效。

ebook-convert --version

生成文档

一个新的gitbook文档有两个文件组成,分别是README.mdSUMMARY.md(可自行创建文件夹,在文件夹内创建这两个文件)。

  • README.md:关于当前文档的详细描述
  • SUMMARY.md:当前文档的目录层级关系配置,通过初始化命令可直接生成markdown文件以及文件夹。

编写Summary

下面是一个示例文档的层级关系:

# Summary

- 第一级目录
  - [第一级目录的子目录](one/first.md)
- 第二级目录
  - [第二级目录的子目录](two/first.md)

GitBook初始化

gitbook内部提供了一个初始化的命令,自动根据SUMMARY.md文件的层级内容生成对应的md文件以及文件夹,执行如下命令:

➜ gitbook-example gitbook init
info: create one/first.md 
info: create two/first.md 
info: create SUMMARY.md 
info: initialization is finished 

控制台的输出信息已经告诉我们成功创建了one/first.mdtwo/first.md这两个文件。

配置语言

gitbook默认使用的并不是中文汉子,我们需要通过配置book.json文件来修改默认语言方式(book.json文件创建在SUMMARY.md同级目录下)如下所示:

{
    "language": "zh-hans"
}

导出文档

gitbook导出文档的方式有多种,下面简单介绍几种导出的方式。

导出为PDF

SUMMARY.md文件的同级目录执行gitbook pdf .命令进行导出PDF文件,执行日志如下所示:

➜ gitbook-example gitbook pdf .
info: 7 plugins are installed 
info: 6 explicitly listed 
info: loading plugin "highlight"... OK 
info: loading plugin "search"... OK 
info: loading plugin "lunr"... OK 
info: loading plugin "sharing"... OK 
info: loading plugin "fontsettings"... OK 
info: loading plugin "theme-default"... OK 
info: found 3 pages 
info: found 0 asset files 
info: >> generation finished with success in 5.7s ! 
info: >> 1 file(s) generated 

如果想要自定义生成的pdf文件名称,可以使用gitbook pdf . ./xxxx.pdf命令。

导出为epub

SUMMARY.md文件的同级目录执行gitbook epub .命令进行导出epub文件,执行日志如下所示:

➜ gitbook-example gitbook epub .
info: 7 plugins are installed 
info: 6 explicitly listed 
info: loading plugin "highlight"... OK 
info: loading plugin "search"... OK 
info: loading plugin "lunr"... OK 
info: loading plugin "sharing"... OK 
info: loading plugin "fontsettings"... OK 
info: loading plugin "theme-default"... OK 
info: found 3 pages 
info: found 2 asset files 
info: >> generation finished with success in 2.4s ! 
info: >> 1 file(s) generated 

导出为mobi

SUMMARY.md文件的同级目录执行gitbook mobi .命令进行导出mobi文件,执行日志如下所示:

➜ gitbook-example gitbook mobi .
info: 7 plugins are installed 
info: 6 explicitly listed 
info: loading plugin "highlight"... OK 
info: loading plugin "search"... OK 
info: loading plugin "lunr"... OK 
info: loading plugin "sharing"... OK 
info: loading plugin "fontsettings"... OK 
info: loading plugin "theme-default"... OK 
info: found 3 pages 
info: found 3 asset files 
info: >> generation finished with success in 1.9s ! 
info: >> 1 file(s) generated

导出日志查看

如果你在导出过程中遇到了问题,你可以在执行导出命令时添加--log=debug命令参数,这样导出时就可以看到完整的日志信息在控制台输出,如下所示:

➜ gitbook-example gitbook pdf . ./example.pdf --log=debug
debug: readme found at README.md 
debug: summary file found at SUMMARY.md 
debug: cleanup folder "/var/folders/c1/5mrhntb13_zfrnjg4grnf8zr0000gn/T/tmp-2291a4Jd8P8oNX4l" 
......

总结

使用gitbook可以用来编写公司的接口使用文档、项目设计文档等等,功能远不止如此,它还可以通过gitbook build命令来生成静态html文件,可以部署到Nginx阿里云OSS等静态页面托管的地方。

作者个人 博客 使用开源框架 ApiBoot 助你成为Api接口服务架构师


推荐阅读
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • 在ElasticStack日志监控系统中,Logstash编码插件自5.0版本起进行了重大改进。插件被独立拆分为gem包,每个插件可以单独进行更新和维护,无需依赖Logstash的整体升级。这不仅提高了系统的灵活性和可维护性,还简化了插件的管理和部署过程。本文将详细介绍这些编码插件的功能、配置方法,并通过实际生产环境中的应用案例,展示其在日志处理和监控中的高效性和可靠性。 ... [详细]
  • 在Ubuntu系统中安装Android SDK的详细步骤及解决“Failed to fetch URL https://dlssl.google.com/”错误的方法
    在Ubuntu 11.10 x64系统中安装Android SDK的详细步骤,包括配置环境变量和解决“Failed to fetch URL https://dlssl.google.com/”错误的方法。本文详细介绍了如何在该系统上顺利安装并配置Android SDK,确保开发环境的稳定性和高效性。此外,还提供了解决网络连接问题的实用技巧,帮助用户克服常见的安装障碍。 ... [详细]
  • 解决针织难题:R语言编程技巧与常见错误分析 ... [详细]
  • 在 openSUSE Tumbleweed 系统上搭建 51 单片机开发环境并进行编程实践。首先,通过 `sudo zypper in emacs` 命令安装文本编辑器 Emacs。接着,使用 `sudo zypper in sdcc` 安装 SDCC 编译器。最后,利用 `wget` 下载 sdcflash Python 脚本,以便于单片机的烧录和调试。此外,还介绍了如何配置开发环境,确保各组件协同工作,提高开发效率。 ... [详细]
  • 在CentOS 7上部署WebRTC网关Janus
    在CentOS 7上部署WebRTC网关Janus ... [详细]
  • 在Ubuntu 20.04 Linux系统中部署Git的详细步骤与最佳实践
    在Ubuntu 20.04 Linux系统中部署Git时,首先确保您的操作系统版本正确,并已以具备sudo权限的用户身份登录。推荐使用APT软件包管理器进行安装,这是最简便且可靠的方法。此外,遵循最佳实践,如定期更新Git版本和配置全局设置,可以进一步提升使用体验和安全性。 ... [详细]
  • Android 构建基础流程详解
    Android 构建基础流程详解 ... [详细]
  • SecureCRT是一款功能强大的终端仿真软件,支持SSH1和SSH2协议,适用于在Windows环境下高效连接和管理Linux服务器。该工具不仅提供了稳定的连接性能,还具备丰富的配置选项,能够满足不同用户的需求。通过SecureCRT,用户可以轻松实现对远程Linux系统的安全访问和操作。 ... [详细]
  • 在 CentOS 7 中,为了扩展可用软件包的数量,通常需要配置多个第三方软件源。这些第三方源包括 EPEL、Nux Dextop 和 ELRepo 等,它们提供了大量官方源中未包含的软件包,从而增强了系统的功能性和灵活性。通过正确配置这些源,用户可以轻松安装和管理更多种类的软件,满足不同的需求。 ... [详细]
  • 在Ubuntu系统中配置Python环境变量是确保项目顺利运行的关键步骤。本文介绍了如何将Windows上的Django项目迁移到Ubuntu,并解决因虚拟环境导致的模块缺失问题。通过详细的操作指南,帮助读者正确配置虚拟环境,确保所有第三方库都能被正确识别和使用。此外,还提供了一些实用的技巧,如如何检查环境变量配置是否正确,以及如何在多个虚拟环境之间切换。 ... [详细]
  • 本文深入解析了 FCEUX 源码,并详细介绍了两种制作 DEB 包的方法及其技术细节。首先,DEB 包通常由两部分组成:控制信息(位于 DEBIAN 目录)和安装内容(模拟目录)。通过解压现有的 DEB 包,可以查看其内部结构,进而理解其工作原理。具体操作包括将安装内容释放到指定目录中,以便进行进一步的修改和定制。此外,文章还探讨了如何修改现有的 DEB 包,以满足特定需求,提供了实用的步骤和技巧。 ... [详细]
  • Deepin 20 系统源更换指南及基础设置教程
    配置目标:创建一个适合基本娱乐、办公和直播的环境。安装方法:手动分区。系统要求:EFI分区需大于500MB,根分区建议至少20GB,以确保系统稳定运行和足够的存储空间。此外,建议分配适量的交换分区,以提升系统性能和响应速度。 ... [详细]
  • 在使用SSHFS进行远程文件系统挂载时,经常遇到连接被对端重置的问题。经过详细排查,发现客户端使用的SSH版本与服务器端不兼容,导致连接失败。本文将深入分析该问题的原因,并提供多种解决方案,包括更新SSH客户端、调整SSH配置参数以及优化网络环境,以确保SSHFS连接的稳定性和可靠性。 ... [详细]
  • 如何将PHP文件上传至服务器及正确配置服务器地址 ... [详细]
author-avatar
_______王晓
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有