知识就是力量,甚至说 知识就是金钱 更为合适。
在信息时代的我们,获取知识,提升认知如同吃饭一样,成为了必须做的事情,阅读是最常用的获取知识的方式,没用之一,可以有时因为一些技术问题,导致我们阅读不便。
比如前几天,我想读一本 《人人都能用英语》,找到了在这里找到了用 Markdown 写的原文,虽然可以阅读,但如何在手机上阅读,是个问题。
转为 Pdf,或者 html,可以是可以,不过阅读起来不方便,也记不住上次读到哪里了,更要命的是无法做笔记,也搜了纸质书,因为这本书没用正式出版,所以也都是盗版的。
因为我经常用 多看APP 读书,如果能直接在多看上看就好了。
尝试了以一圈,发现了一个好方法,现在我以及阅读过半了,现在分享一下我的魔法过程。
解题思路
首先看看多看支持什么样的电子书格式,百度一下,特别全,为了更好的体验,还是转为 epub 更好。
因为 PDF 没法自适应行,只能通过放大缩小控制。
那么如何转 epub 呢?一搜,发现有众多在线转的,尝试了几个,不是收费就是各种限制。
咱不是会编程吗?如果能自己搞岂不更好。
改变检索思路,很快发现了一个命令行工具 —— pandoc
,进一步研究,发现竟然有 Python 版的 —— pypandoc,真是太棒了,研究一番,发现完全满足我的需求。
于是解决方案就是:
- 下载 markdown 版电子书
- 用 pypandoc 转化为 epub 格式
- 导入 多看 阅读
神奇出场
之所以喜欢 Python 有一个重要的原因就是安装和使用扩展很方便,几乎每个神器出场的方式都是一样的哈哈
1 | pip install pypandoc |
友情提示:
最好创建一个虚拟环境来安装,这样不好影响其他库,也方便迁移,理解和创建虚拟环境可以参考 https://mp.weixin.qq.com/s/WflK5pOKhvPg8zrf_W5mfw
安装成功之后,可以测试一下:
1 | import pypandoc |
可见,我安装的版本是: 2.14.2
pandoc 是一个常用的软件,很多操作系统比如 Windows 可能已经内置
另外也可以单独安装,使用它的命令行工具,更多的 Pandoc 安装方式 和用法可以参考 Pandoc 说明 和 Panddoc 文档
小试牛刀
翻看 Pandoc 说明,发现有个 convert_text
方法,可以用字符串的方式提供待转化的文本。
那先写一段 markdown 试试:
1 | import pypandoc |
显示结果如下:
1 | <p><strong>Hello World!</strong></p> |
太棒了,将 **Hello World!**
转化成了一段 html 代码了。
再试点复杂的:
1 | import pypandoc |
看看输出:
1 | <h1 id="pandoc">Pandoc</h1> |
换一种输出格式呢?
1 | output = pypandoc.convert_text(input, 'rst', format='md') |
看看输出:
1 | Pandoc |
最好试试转化为 ePub 格式
ePub 格式无法输出为字符串,需要存入文件,所以需要用 加入
outputfile
参数
代码如下:
1 | convert_test(input, 'epub', format='md', outputfile='test.epub') |
用 EPUB File Reader 打开看看效果:
生成电子书
测试了没问题后,就转化一个 Markdown 文件试试。
对于文件,需要用 convert_file
方法:
1 | import pypandoc |
很快就能生成一个 epub 格式的电子书。
这里需要注意的是: 引用的图片
如果是网络上的,需要将图片地址换成全网址,如果是相对的,需要保持目录结构,并却提前准备好图片。
不然将无法生成图片,使电子书失去一定的可读性。
生成好了之后,可以将 人人都能用英语.epub
发送到手机上,用多看打开。
看看效果:
之后就可以在书架里看到了:
简直太棒了,可以安心的读书了!
总结
今天介绍了 pyPandoc
的简单用法 pyPandoc 不仅帮助我创建了电子书,而且让我理解了 Markdown 转化为 Html 的结果,为进步步打造自己的写作系统奠定了基础。
Pandoc 是个强大的工具,利用好,可以帮助我们实现电子书自由,加上会 Python 编程,就更厉害了。
期望这篇文章对你有用,祝你打造出自己的电子书系统,比心!