1. 程式人生 > 程式設計 >使用Gitbook建立檔案並匯出PDF

使用Gitbook建立檔案並匯出PDF

匯出PDF的方式有很多種,之前使用過馬克飛象的匯出功能,不過只是簡單的匯出並不能新增目錄,因為原始檔是markdown編寫的,經過篩選後採用了gitbook的方式進行編寫檔案並且使用gitbook pdf .的方式匯出為PDF檔案。

注意:本機需要有NodeJs環境。

部落格原文:blog.yuqiyu.com/use-gitbook…

環境準備

想要使用gitbook,那麼我們本機需要進行安裝,通過npm命令可以很方便的安裝。

安裝GitBook

通過npm的方式進行安裝gitbook環境,命令如下所示:

npm install gitbook -g複製程式碼

安裝calibre & ebook-convert

使用gitbook的匯出功能,需要第三方外掛ebook的支援,下面針對兩種不同的作業系統進行配置環境。

Linux系統

下載地址:calibre-ebook.com/download_li…

  • 下載並安裝
  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系統

下載地址:calibre-ebook.com/download_os…

  • 下載並安裝

下載的為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介面服務架構師