神器 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 打开看看效果:

4.png

epub


生成电子书

测试了没问题后,就转化一个 Markdown 文件试试。

对于文件,需要用 convert_file 方法:


import pypandoc
convert_file('everyone-can-use-english.md', 'epub', 'md', outputfile='人人都能用英语.epub')


很快就能生成一个 epub 格式的电子书。

这里需要注意的是:引用的图片

如果是网络上的,需要将图片地址换成全网址,如果是相对的,需要保持目录结构,并提前准备好图片。

不然将无法生成图片,使电子书失去一定的可读性。

生成好了之后,可以将 人人都能用英语.epub 发送到手机上,用多看打开。

看看效果:

4.jpg

多看

之后就可以在书架里看到了:

5.jpg

多看书架

简直太棒了,可以安心的读书了!

这下岂不实现了电子书自由啦!

总结

今天介绍了 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

目录
相关文章
|
6月前
|
Android开发
我用过的笔记 Markdown Wiki 工具
我用过的笔记 Markdown Wiki 工具
|
1月前
|
Python
《Cython 从入门到精通》PDF 版本新鲜出炉啦!!!
《Cython 从入门到精通》PDF 版本新鲜出炉啦!!!
30 1
|
3月前
|
存储 自然语言处理 前端开发
Star 6.9k!开源的全能Markdown格式文件提取器:MinerU
总的来说,MinerU是一款非常实用且强大的数据提取工具。无论你是开发者、互联网从业者,还是有具体需求的新人小白,MinerU都能极大地提升你的工作效率,让你专注于更有价值的工作。 最后,如果你对MinerU感兴趣,不妨亲自尝试一下,相信你会爱上这款全能的Markdown格式文件提取器。
|
6月前
|
SQL 分布式计算 大数据
Spark开发实用技巧-从入门到爱不释手
Spark开发实用技巧-从入门到爱不释手
53 0
|
6月前
|
Python
【Python3 查询手册学习】,完整版PDF开放下载_python速查手册·模块卷(全彩版) pdf(1)
【Python3 查询手册学习】,完整版PDF开放下载_python速查手册·模块卷(全彩版) pdf(1)
|
6月前
|
存储 Docker 容器
Star 8.3k!强烈推荐这款强大的 PDF 文件处理工具,PDF处理它全包了!
Star 8.3k!强烈推荐这款强大的 PDF 文件处理工具,PDF处理它全包了!
136 1
|
6月前
|
JavaScript 搜索推荐 前端开发
《VitePress 简易速速上手小册》第2章:Markdown 与页面创建(2024 最新版)
《VitePress 简易速速上手小册》第2章:Markdown 与页面创建(2024 最新版)
228 0
|
6月前
|
JSON 数据可视化 Linux
安利3款Python三方库!轻松实现PDF转图片,最快的只需一行代码!
安利3款Python三方库!轻松实现PDF转图片,最快的只需一行代码!
152 0
|
前端开发 Linux C++
又一款神级插件,这下连PPT都不用装了|在VSCode中用Markdown写PPT
又一款神级插件,这下连PPT都不用装了|在VSCode中用Markdown写PPT

相关实验场景

更多