• GitBook生成电子书并发布到GitHub Pages


    看英文书,总得留下点什么,索性就机翻一下吧。之前想在GitHub的Pages上做连载,但是Pages的页面之间跳转不方便,所以转而寻求GitBook。

    没有VPN,GitBook无法登录,所以在线版是用不了了,只能用命令行。

    本地安装GitBook

    首先要安装Node.js,对版本有要求,要10.21.0以下,否则安装gitbook-cli时会出错。

    安装好Node.js后,使用npm install -g gitbook-cli安装命令行工具,然后再使用gitbook -V安装gitbook。因为GitBook已经停止更新、全部转为线上版本了,所以命令行工具停在了2.3.2,GitBook停在了3.2.3,这是安装后的结果:

    $ gitbook -V
    CLI version: 2.3.2
    GitBook version: 3.2.3
    
    • 1
    • 2
    • 3

    在一个新的目录内执行gitbook init,会创建README.mdSUMMARY.md,前者是电子书的第一页,后者是目录。写几个Markdown后,通过gitbook build就可以构建电子书了,通过gitbook serve可以在本地浏览器查看。

    通过gitbook pdf可以生成PDF文件,不过会报错:

    $ 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 10 pages
    info: found 9 asset files
    
    EbookError: Error during ebook generation: 'ebook-convert' is not recognized as an internal or external command,
    operable program or batch file.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    显示缺少ebook-convert,需要下载Calibre。Windows平台比较简单,直接去官网下载安装程序就行了,安装之后就可以生成PDF了,不过文件有点问题,添加了book.json好像也没用。

    对于Linux,不要用自带的包管理工具去安装,直接去官网下载最新的版本安装。官网给了一条命令sudo -v && wget -nv -O- https://download.calibre-ebook.com/linux-installer.sh | sudo sh /dev/stdin

    直接执行下载比较慢,所以可以先把linux-installer.sh下载下来。这是个Python脚本,功能是下载最新的版本到/tmp/calibre-installer-cache并解压安装。所以可以先去GitHub下载最新的版本(目前是5.44.0)到该目录,然后再执行linux-installer.sh就很快了。

    发布到GitHub Pages

    gitbook build后生成的文件全部在_book中,切到一个新的分支gh-pages,将除_book之外的内容全部删除,再将_book中的内容复制到根目录,提交并推送到远程,在GitHub中开启Pages,选择gh-pages分支和root作为源,保存之后等待部署完毕就可以在线阅读了。

  • 相关阅读:
    NTU课程笔记:DeepLab
    SpringBoot项目创建及其核心设计思想
    2021春招Java面试题大全(精华)
    c++ uml时序图
    Linux C中对json格式数组数据的生成与解析
    LTE ATTACH流程、PDN流程、PGW地址分配介绍
    【Svelte】-(4)If 条件判断语句 / Each 循环语句 / Await 异步处理块
    LabVIEW中使用Get LV Class Default Value 出现错误1498
    chatgpt,神经网络与拥塞控制
    Linux中提高效率的环境配置
  • 原文地址:https://blog.csdn.net/RayoNicks/article/details/125471836