對於經常閱讀的人來說,製作本地電子書,算是剛需了。網上的很多教程都不太好用,所以我特地整理出一個詳細的教程。親測有效,一勞永逸。
當你意外發現某個寶藏公眾號時,想要集中閱讀上面的每一篇文章,恨不得一口氣看完,你會怎麼做呢?你可能會把它添加到「微信讀書」App 的書架上:
但上面這種曲線救國的方式並非最佳,仍然不盡人意,存在不少問題。
我知道,現在有很多的第三方服務,可以將任意公眾號的文章製作成電子書,我試過很多次,但都是付費的。一聽說要錢,你又不幹了:
再列舉一種場景:當你在 GitHub 上發現一個很全面很豐富的項目文檔時,仿佛發現了新大陸。可 GitHub 網站的的伺服器在國外,國內的訪問速度實在感人,你想要把它下載到本地查看,會怎麼做呢?你估計會直接選擇「Download ZIP」,然後用 Typora 或者 VS Code 軟體打開這個項目文檔,在本地查看:
總之,你能想到的方式,我都想到了,而且都嘗試過。
現在的需求就是,如果你經常閱讀網上的資料,肯定會有這樣一個需求:怎麼把這些幾百頁、甚至幾千頁的內容整理成 PDF、ePub、mobi 等格式的電子書呢?
要麼花錢請別人做,要麼自己做。
今天這篇文章,就是來告訴你」自己動手製作 PDF、ePub、mobi 等格式電子書「的最佳方式。如果你是碼農出身,下面講的這些步驟,根本難不倒你。如果你不是碼農出身,也沒關係,只要你有一臺電腦,跟著我講的教程研究下去,肯定能搞定。
問題的關鍵不在於難不難、會不會,而是在於你是不是愛折騰。
製作電子書的具體步驟 整體流程先說一下整體步驟:
(1)安裝 gitbook 工具。
(2)安裝 calibre 軟體,配置 ebook-convert工具。
(3)將md格式的多個文件素材導出為電子書(支持 PDF、ePub、mobi 等格式)。
(4)高級進階:配置電子書的目錄、封面、頁眉頁腳等。
整理流程如下:
接下來我們看看詳細的完整步驟。
步驟 1:通過 npm 安裝 gitbook-cli安裝命令如下:
npm install -g gitbook-cli安裝成功之後,再執行gitbook -V命令確認是否安裝成功:
gitbook -V
CLI version: 2.3.2
GitBook version: 3.2.3備註:如果你不知道 npm 是什麼,可以自行查閱如何安裝 Node.js 和 npm 環境。
步驟 2:安裝 ebook-convert(針對 Windows 用戶)ebook-convert 是能夠自由轉化格式的一個命令行工具,已經包含在 calibre 軟體裡面了。
(1)安裝 calibre 軟體。calibre 的官網如下:(我們可以去官網下載安裝)
https://calibre-ebook.com/
(2)在終端輸入如下命令,驗證 ebook-convert 是否能正常使用:
ebook-convert --version如果輸入上面的命令後提示錯誤,說明你還需要將 calibre 的安裝目錄添加到系統的環境變量中。
步驟 2:安裝 ebook-convert(針對 Mac 用戶)ebook-convert 是能夠自由轉化格式的一個命令行工具,已經包含在 calibre 軟體裡面了。
(1)安裝 calibre 軟體。calibre 的官網如下:(我們可以去官網下載安裝)
https://calibre-ebook.com/
(2)配置 ebook-convert。針對 Mac 系統,需要執行如下命令,把 ebook-convert 軟連結到 bin 目錄:
sudo ln -s /Applications/calibre.app/Contents/MacOS/ebook-convert /usr/bin如果出現Operation not permitted異常,說明系統權限限制,此時需要配置環境變量。
(3)環境變量配置:
vim ~/.bash_profile
# 將下面這兩行配置,添加到 .bash_profile 文件中
export EBOOK_PATH=/Applications/calibre.app/Contents/MacOS
export PATH=$PATH:$EBOOK_PATH備註:可以自行研究下,在命令行環境,如何通過 vim 編輯文件。
然後刷新一下剛剛的配置:
source ~/.bash_profile驗證ebook-convert是否能正常使用:
ebook-convert --version
步驟 3:配置電子書的目錄本地新建一個空的文件夾,作為我們的電子書項目。文件夾的名字隨便起,但建議用英文命名。
(1)項目初始化。
在當前項目下,執行如下命令,進行初始化:
gitbook init此時,項目下會自動生成如下兩個文件:(非常重要,必不可少)
這兩個文件創建後,內容為空白,可使用 Markdown 語言自定義內容。
(2)配置電子書的目錄。
我們先把本地的 markdown 文件(也就是我們的電子書素材)放到項目中,然後在SUMMARY.md文件中配置電子書的目錄。
比如說, 我的項目中有下面這些文件:
那麼,我在SUMMARY.md文件中就要這樣配置:
# 目錄
* [README](./README.md)
* [00-前端工具](00-前端工具/0-README.md)
* [01-VS Code的使用](00-前端工具/01-VS Code的使用.md)
* [02-Git的使用](00-前端工具/02-Git的使用.md)
* [01-HTML](01-HTML/0-README.md)
* [01-認識Web和Web標準](01-HTML/01-認識Web和Web標準.md)
* [02-瀏覽器的介紹](01-HTML/02-瀏覽器的介紹.md)
* [03-初識HTML](01-HTML/03-初識HTML.md)
* [02-CSS基礎](02-CSS基礎/0-README.md)
* [01-CSS屬性:字體屬性和文本屬性](02-CSS基礎/01-CSS屬性:字體屬性和文本屬性.md)
* [02-CSS屬性:背景屬性](02-CSS基礎/02-CSS屬性:背景屬性.md)
* [03-CSS樣式表和選擇器](02-CSS基礎/03-CSS樣式表和選擇器.md)
* [03-JavaScript基礎](03-JavaScript基礎/0-README.md)
* [00-程式語言](03-JavaScript基礎/00-程式語言.md)
* [01-JS簡介](03-JavaScript基礎/01-JS簡介.md)
* [02-變量](03-JavaScript基礎/02-變量.md)
* [03-變量的數據類型:基本數據類型和引用數據類型](03-JavaScript基礎/03-變量的數據類型:基本數據類型和引用數據類型.md)製作成的目錄,將會是下面這種效果:
步驟 4:導出電子書
(1)本地預覽電子書:
gitbook serve執行上方命令後,工具會對項目裡的 Markdown 格式的文件進行轉換,默認轉換為 html 格式,最後提示 Serving book on http://localhost:4000。
我們打開瀏覽器輸入http://localhost:4000,預覽一下電子書的效果:
(2)製作並導出電子書。接下來就是見證奇蹟的時刻。
生成 PDF 格式的電子書:(PDF 是最常見的文檔格式)
gitbook pdf ./ ./mybook.pdf生成 epub 格式的電子書:(epub 是最常見、最通用的電子書格式)
gitbook epub ./ ./mybook.epub生成 mobi 格式的電子書:(mobi 格式可以在 kindle 中打開)
gitbook mobi ./ ./mybook.mobi上面這三種格式的電子書生成之後,項目裡會看到這三個新增的文件:
我們把電子書打開,驗收一下成果。
打開 pdf 電子書看看效果:
打開 epub 電子書看看效果:
怎麼樣,自製電子書就這樣做好了,是不是很有成就感?
製作電子書的高級配置電子書做好之後,我猜你肯定想進一步做個性化配置,比如:怎麼加封面?怎麼修改頁眉頁腳?還有其他的一些配置。
我們來看看親手製作的電子書,有哪些常見的高級配置。
製作書籍封面為了讓書籍顯示得更加優雅,我們可以指定一個自定義的封面。操作如下:
在項目的根目錄下準備好 cover.jpg (大封面)和 cover_small.jpg (小封面)這兩種封面圖片。注意,圖片的文件名和後綴名必須嚴格按照這句話來。
GitBook 的官方文檔建議:cover.jpg (大封面)的尺寸為 1800x2360 像素,cover_small.jpg(小封面)的尺寸為 200x262 像素。圖片的製作,建議遵循如下規範:
book.json :電子書的各種配置我們可以在項目的根目錄下新建一個文件book.json(注意,文件名是book,後綴名是json),這個book.json就是電子書的配置文件,可以在裡面填一些常見的配置。
關於 book.json 的配置項有很多,我們可以在網上搜索「GitBook book.json」找到。這裡大致列舉一些。
1、常規配置如下:
配置 book.json 的示例如下:
{
"title": "前端入門和進階圖文教程",
"description": "前端入門到進階圖文教程,超詳細的Web前端學習筆記。從零開始學前端,做一名精緻優雅的前端工程師。公眾號「千古壹號」作者。",
"author": "千古壹號",
"language": "zh-hans",
"gitbook": "3.2.3",
"root": "."
}備註:上面的root根目錄為當前目錄,使用默認的就好,此項可以刪掉,這裡僅做演示。
2、pdf 的配置如下:(使用 book.json 中的一組選項來定製 PDF 輸出)
配置項描述pdf.pageNumbers將頁碼添加到每個頁面的底部(默認為 true)pdf.fontSize基本字體大小(默認是 12)pdf.fontFamily基本字體樣式(默認是 Arial)pdf.paperSize頁面尺寸,選項有:a0、a1、 a2、 a3、a4、a5、a6、b0、b1、b2、b3、b4、b5、b6、legal、letter (默認值是 a4)pdf.margin.top上邊距(默認值是 56)pdf.margin.bottom下邊距(默認值是 56)pdf.margin.left左邊距(默認值是 62)pdf.margin.right右邊距(默認值是 62)定製 PDF 文檔輸出格式的示例代碼如下:
{
"pdf": {
"pageNumbers": false,
"fontSize": 12,
"paperSize": "a4",
"margin": {
"top": 36,
"bottom": 36,
"left": 62,
"right": 62
}
}
}備註:如果你不需要對輸出的 pdf 做任何特定的配置,則不需要添加上面的內容,讓 pdf 的輸出格式保持默認就好。
3、plugins 插件:
插件及其配置在 book.json 中指定,讓電子書的配置能力更加強大。
通過插件,我們可以做很多事情,比如:修改頁眉頁腳、自動生成並顯示圖片的標題等。
另外,針對在線版的 GitBook 電子書,也有很多插件,這裡列舉幾個:
自帶的 search 插件不支持中文搜索,使用起來非常不方便,還好search-pro插件橫空出世,讓搜索功能煥發出新的生機。插件地址:地址:https://github.com/gitbook-plugins/gitbook-plugin-search-pro默認側邊欄寬度是不能夠調節的,如果想通過拖拽的方式自由調節側邊欄寬度,可以使用插件splitter。插件地址:https://github.com/yoshidax/gitbook-plugin-splitterdonate 插件支持定義和顯示支付寶和微信打賞。插件地址:http://github.com/willin/gitbook-plugin-donate關於插件的具體配置,感興趣的同學可以自行研究下。
自動生成目錄(重要)如果你的電子書素材裡有很多 markdown 文件,那麼,如何將多個 markdown 文件的文件名,在SUMMARY.md裡快速生成對應的目錄?
難道要一個一個地手動 copy 嗎?這不可能。
說白了,這個需求就是:如何自動生成電子書的目錄?改變世界的程式設計師用「腳本」就能搞定,一鍵執行。
網上有很多好用的腳本,我給你推薦一個親測好用的腳本:
GitBook 自動生成目錄的腳本:https://github.com/fushenghua/gitbook-plugin-summary
操作方法很簡單,把上面這個連結中的項目下載下來,進入到這個項目的目錄,執行 $ python gitbook-plugin-summary.py dirPath 即可自動生成電子書的目錄,親測有效。備註:這裡的dirPath指的是你的電子書目錄的絕對路徑。
對了,在執行上面這個腳本之前,記得先安裝 Python 環境。
電子書用什麼軟體打開 用什麼軟體打開 PDFWindows 平臺:可以用「福昕閱讀器」或者「Acrobat Reader DC」。「福昕閱讀器」既有 Windows 平臺,也有 Mac 平臺。
Mac 平臺:可以用自帶的「預覽」打開。
其實,不管你用的是 Windows 電腦還是 Mac 電腦,你都可以用 Chrome 瀏覽器打開 PDF。
iPhone 或 iPad 平臺:可以用自帶的「iBooks」打開,或者用「WPS Office」打開。也可以用第三方軟體「GoodReader」,不過需要 40 人民幣。
Android 手機:可以用「WPS Office」等第三方辦公軟體打開。
用什麼軟體閱讀 ePub 電子書Windows 平臺:可以用「calibre」軟體閱讀 epub 電子書。
Mac & iPhone & iPad 平臺:用自帶的「iBooks」閱讀即可。iBooks 可以非常方便地對電子書進行標註和搜索,無疑是體驗最好的 ePub 電子書閱讀軟體。
Android 手機:可以用「多看閱讀」App 來閱讀 epub 格式電子書。
用什麼方式閱讀 mobi 電子書kindle 電子書有兩種常見的電子書格式:「mobi」格式和「azw3」格式。
針對 mobi 格式的電子書,你既可以通過郵件的形式將其發送到 kindle 閱讀器(可以自行網上查一下相關教程),也可以將其拷貝到 kindle 閱讀器(是連接 usb 進行拷貝)。
針對 azw3 格式的電子書,就只能通過拷貝的形式(是連接 usb 拷貝)傳輸到 kindle 閱讀器。
小結我在 2017 年 1 月寫過一篇電子書科普的文章,快三年過去了,如今回過頭來看,那篇文章一點也不過時,不妨看看:《電子書有哪些常見格式?以及該怎樣閱讀它》
最後一段如果你一時半會兒找不到可用的素材來製作電子書,可以拿我的項目練練手。項目地址:
https://github.com/qianguyihao/web
我用上面的項目製作成了一個電子書。在「千古壹號」的公眾號後臺回復「pdf」,給你看看我製作的電子書效果。
不瞞你說,這篇文章,我在一年多以前就寫好了初稿並放在了 GitHub 上,當時專門折騰過一次。
最近幾天,我突然又有了製作電子書的需求。一年多過去了,我還以為有啥新的方法可以試試,然而我在網上找了一圈,好用的方法還是沒變。所以,我今天整理一下發出來,希望讓更多人看到。
其他的各種自製電子書的方法我都試過了,都不太好使,唯獨 GitBook + calibre 是最佳選擇,信我沒錯!
參考連結GITBOOK 使用:https://kuang.netlify.app/blog/gitbook.html
GitBook 製作 Kindle 電子書詳細教程:https://github.com/fushenghua/gitbook-plugin-summary/blob/master/gitbook-guide.md
gitbook-plugin-summary 工具(自動生成目錄):https://github.com/fushenghua/gitbook-plugin-summary
gitbook-plugin-atoc(自動生成目錄的插件):https://github.com/willin/gitbook-plugin-atoc
自動生成目錄:https://github.com/mofhu/GitBook-auto-summary
使用 Gitbook 打造你的電子書:https://juejin.im/post/6844903793033740302
書籍《了不起的 Markdown》的第 8 章:自由地寫作——GitBook
gitbook 的 book.json 配置示例:https://blog.ujwd.cn/archives/349
關於更加詳細的 book.json 文件配置:https://zhousiwei.gitee.io/mybook/notes/gitbook_config.html
GitBook 簡明使用教程:https://www.phpjieshuo.com/archives/153/
gitbook 入門教程之導出電子書:https://juejin.im/post/5caa0fb46fb9a05e5a2e53b3
GitBook 插件整理 - book.json 配置:https://www.cnblogs.com/mingyue5826/p/10307051.html
如何把 Markdown 文件批量轉換為 PDF(不好用):https://sspai.com/post/47110