神器 pypandoc —— 實現電子書自由

在信息時代的我們,獲取知識,提升認知如同喫飯一樣,成爲了必須做的事情,閱讀是最常用的獲取知識的方式,沒用之一。

可是有時因爲一些技術問題,導致我們閱讀不便。

比如前幾天,我想讀一本 《人人都能用英語 [1]》,找到了用 Markdown 寫的原文,雖然可以閱讀,但如何在手機上閱讀,是個問題。

轉爲 Pdf,或者 html,雖然是可以,不過閱讀起來很不方便,也記不住上次讀到哪裏了,更要命的是無法做筆記。

也搜了紙質書,因爲這本書沒用正式出版,所以也都是盜版的,就算了。

因爲我經常用 多看 APP 讀書,如果能直接在多看上看就好了。

嘗試了一圈,發現了一個好方法,現在我已經閱讀過半了,體驗很好,現在分享一下我的魔法過程。

解題思路


首先得知道,多看支持什麼樣的電子書格式,百度一下,特別全,爲了更好的體驗,決定轉爲 epub。

那麼如何將 Markdown 轉 epub 呢?一搜,發現有衆多在線轉服務,嘗試了幾個,不是收費就是各種限制,很不方便。

咱不是會編程嗎?如果能自己搞豈不更好?

改變檢索思路,很快發現了一個命令行工具 —— pandoc,進一步研究,發現竟然有 Python 版的 —— pypandoc,真是太棒了,研究一番,發現完全滿足我的需求。

於是解決方案就是:

  1. 下載 markdown 版電子書

  2. 用 pypandoc 轉化爲 epub 格式

  3. 導入 多看, 閱讀

開幹!

神器出場


之所以喜歡 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