神器 pypandoc —— 實現電子書自由
在信息時代的我們,獲取知識,提升認知如同喫飯一樣,成爲了必須做的事情,閱讀是最常用的獲取知識的方式,沒用之一。
可是有時因爲一些技術問題,導致我們閱讀不便。
比如前幾天,我想讀一本 《人人都能用英語 [1]》,找到了用 Markdown 寫的原文,雖然可以閱讀,但如何在手機上閱讀,是個問題。
轉爲 Pdf,或者 html,雖然是可以,不過閱讀起來很不方便,也記不住上次讀到哪裏了,更要命的是無法做筆記。
也搜了紙質書,因爲這本書沒用正式出版,所以也都是盜版的,就算了。
因爲我經常用 多看 APP 讀書,如果能直接在多看上看就好了。
嘗試了一圈,發現了一個好方法,現在我已經閱讀過半了,體驗很好,現在分享一下我的魔法過程。
解題思路
首先得知道,多看支持什麼樣的電子書格式,百度一下,特別全,爲了更好的體驗,決定轉爲 epub。
那麼如何將 Markdown 轉 epub 呢?一搜,發現有衆多在線轉服務,嘗試了幾個,不是收費就是各種限制,很不方便。
咱不是會編程嗎?如果能自己搞豈不更好?
改變檢索思路,很快發現了一個命令行工具 —— pandoc
,進一步研究,發現竟然有 Python 版的 —— pypandoc,真是太棒了,研究一番,發現完全滿足我的需求。
於是解決方案就是:
-
下載 markdown 版電子書
-
用 pypandoc 轉化爲 epub 格式
-
導入 多看, 閱讀
開幹!
神器出場
之所以喜歡 Python 有一個重要的原因就是安裝和使用擴展很方便,幾乎每個神器出場的方式都是一樣的哈哈:
pip install pypandoc
友情提示:
最好創建一個虛擬環境來安裝,這樣不好影響其他庫,也方便遷移,理解和創建虛擬環境可以參考 https://mp.weixin.qq.com/s/WflK5pOKhvPg8zrf_W5mfw
安裝成功之後,可以測試一下:
>>> import pypandoc
>>> print(pypandoc.get_pandoc_version())
2.14.2
可見,我安裝的版本是: 2.14.2
pandoc 是一個常用的軟件,很多操作系統比如 Windows 可能已經內置
另外也可以單獨安裝,使用它的命令行工具,更多的 Pandoc 安裝方式 和用法可以參考 pypandoc 說明 [2] 和 Pandoc 文檔 [3]
小試牛刀
翻看 pypandoc 說明,發現有個 convert_text
方法,可以用字符串的方式提供待轉化的文本。
那先寫一段 markdown 試試:
import pypandoc
input = "**Hello World!**"
output = pypandoc.convert_text(input, 'html', format='md')
print(output)
顯示結果如下:
<p><strong>Hello World!</strong></p>
太棒了,將 **Hello World!**
轉化成了一段 html 代碼了。
再試點複雜的:
import pypandoc
input = """
# Pandoc
Pandoc 是個牛X的工具
## 用法
- `convert_text`
- `convert_file`
"""
output = pypandoc.convert_text(input, 'html', format='md')
print(output)
看看輸出:
<h1 id="pandoc">Pandoc</h1>
<p>Pandoc 是個牛X的工具</p>
<h2 id="用法">用法</h2>
<ul>
<li><code>convert_text</code></li>
<li><code>convert_file</code></li>
</ul>
換一種輸出格式呢?
output = pypandoc.convert_text(input, 'rst', format='md')
看看輸出:
Pandoc
======
Pandoc 是個牛X的工具
用法
----
- ``convert_text``
- ``convert_file``
最好試試轉化爲 ePub 格式
ePub 格式無法輸出爲字符串,需要存入文件,所以需要用 加入
outputfile
參數
代碼如下:
convert_test(input, 'epub', format='md', outputfile='test.epub')
用 EPUB File Reader 打開看看效果:
epub
生成電子書
測試了沒問題後,就轉化一個 Markdown 文件試試。
對於文件,需要用 convert_file
方法:
import pypandoc
convert_file('everyone-can-use-english.md', 'epub', 'md', outputfile='人人都能用英語.epub')
很快就能生成一個 epub 格式的電子書。
這裏需要注意的是:引用的
如果是網絡上的,需要將地址換成全網址,如果是相對的,需要保持目錄結構,並提前準備好。
不然將無法生成,使電子書失去一定的可讀性。
生成好了之後,可以將 人人都能用英語.epub
發送到手機上,用多看打開。
看看效果:
之後就可以在書架裏看到了:
多看書架
簡直太棒了,可以安心的讀書了!
這下豈不實現了電子書自由啦!
總結
今天介紹了 pyPandoc
的簡單用法 pyPandoc 不僅幫助我創建了電子書,而且讓我理解了 Markdown 轉化爲 Html 的對應關係,爲進步步打造自己的寫作系統奠定了基礎。
Pandoc 是個強大的工具,利用好,可以幫助我們實現電子書自由,加上會 Python 編程,就更厲害了。
期望這篇文章對你有用,祝你打造出自己的電子書系統,比心!
參考資料
[1] 人人都能用英語: https://lixiaolai.com/#/everyone-can-use-english/
[2]pypandoc 說明: https://github.com/NicklasTegner/pypandoc
[3]Pandoc 文檔: https://pandoc.org/index.html
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/pG9PQGX5j5KRKQFVw4kKpw