Markdown转Word/PDF/HTML全攻略:一键搞定所有格式转换!

使用 Markdown 后,偶尔会遇到和其他格式相互转换的需求。

Markdown 转为其他格式是非常方便的。但将 PDF、epub 等电子书转为 Markdown 就有点复杂了,本文就介绍一些转换技巧,和几个格式转换工具。

先了解下 Pandoc

Pandoc 是一个开源项目,号称文档格式转换的瑞士军刀。

Pandoc 的历史(了解即可)

Pandoc 是一个基于 GPL 协议开源的免费 命令行软件,由加州大学伯克利分校哲学系教授 John MacFarlane 使用 Haskell 语言开发,目前另一位核心开发者是来自德国的 Albert Krewinkel。截止 2022 年 12 月 10 日,Pandoc 的 GitHub 仓库拥有超过 27,000 个 Star,3,000 次 Fork。

根据 John MacFarlane 教授的 介绍,Pandoc 这个名称是一个组合单词:Pan 是希腊神话里的牧神,指的是一切掌管树林、田地和羊群的神,doc 则是 document 的缩写,意为文档。因此从字面意思来看,可以说 Pandoc 是一个「无所不能的文档转换利器」 (universal markup converter),而它的确也拥有名副其实的功能。

Pandoc 的安装

Pandoc 的官网详细介绍了在各个操作系统上的 安装方法,以 Windows 为例,直接去其 GitHub 的发行页面下载即可:

安装完成之后,在命令行输入 pandoc --version​,如果输出以下或类似的信息,则意味着安装成功:

pandoc.exe 2.13
Compiled with pandoc-types 1.22, texmath 0.12.2, skylighting 0.10.5,
citeproc 0.3.0.9, ipynb 0.1.0.1
User data directory: C:\Users\peterjxl\AppData\Roaming\pandoc
Copyright (C) 2006-2021 John MacFarlane. Web:  https://pandoc.org
This is free software; see the source for copying conditions. There is no
warranty, not even for merchantability or fitness for a particular purpose.

Pandoc 的基本使用方式

Pandoc 的基本使用方式如下:

pandoc [options] [input-file]

例如,将一个 TXT 文件转换为 HTML 文件:

pandoc -f markdown input.txt -t html -o output.html

同理,将 Markdown 转为其他格式,其他格式转为 Markdown,也是同样的用这样的指令来完成。

Typora 与 Pandoc

在 Typora 的菜单上,可以看到导出选项,支持 PDF、HTML、图片、Word 等等:

其实,Typora 是基于 Pandoc 的功能来完成格式转换的,其原理是调用电脑上的 Pandoc,如果没有安装的话,则导出会失败:

在安装完 Pandoc 后,就可以完成 Markdown 到其他格式的转换啦~

PS:如果安装 Pandoc 后,Typora 仍无法调用 Pandoc,可以考虑重启 Typora 或电脑。

PDF、Word、epub 转 Markdown

原理

Pandoc 除了能将 Markdown 转为其他格式之外,也支持其他格式转为 Markdown。

例如,Typora 也有导入的选项:

转换方式:

  • 如果是 PDF 文件,请先转换为 Word 文档,这个大部分 PDF 编辑器都支持(例如 WPS、 PDF XChange Editor
  • 如果是 epub、mobi 等电子书格式,也可以用 Calibre 来转换为 Word 文档
  • 如果是 Word 文档,可以直接导入到 Typora

图片问题

Pandoc 只能完成格式的转换,并不能解决图片的问题。如果 Word 里有图片,则导入 Markdown 后图片会失效:

那么,如何去提取这些图片呢?其实这些文件就在 .docx 文件里。我们修改下该文件的后缀名为 zip:

然后解压,就能看到一个 media 文件夹,而里面就有相关的图片:

将该文件夹放到和 Markdown 文件同个目录,即可正常读取到图片。

导入后,由于 Word 文档的问题,图片信息可能会带有很多后缀,例如下图的 {width=......}​:

我们可以通过正则表达式,批量去掉这些无用信息(一般编辑器都自带查找和替换的功能):

\{width.*\}

其他工具

PanWriter:一个基于 Pandoc 的 Markdown 编辑器,能够通过 GUI 的方式实现 Pandoc 的部分文档转换功能。

Marker:一个开源的命令行工具,将 PDF、EPUB、MOBI 文档转成 Markdown 文件,必要时会进行 OCR(文字识别)。

参考

Pandoc 从入门到精通,你也可以学会这一个文本转换利器 - 少数派

《Pandoc 中文文档教程 - 用户帮助手册-指南(WIP)》 - 极客文档

  • 40
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PeterJXL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值