pandoc一款开源的文档转换神奇可用命令行的方式实现常见的格式转换

介绍

如果你需要在各种类型的文件中穿梭,那么你需要这把瑞士军刀-pandoc

它可以将各种常见的不常见的文件类型转换成另一种,我感兴趣的是在linux下将markdown文件转换成html,当然这不成问题。

全部支持的转换格式:格式转换

pandoc是一款开源转换工具,可以实现常见的格式转换。支持全平台操作,以命令行的方式进行转换。

下载地址,根据系统的不同选择不同的安装方式。

使用

语法

pandoc [options][input-file]...

说明

如果没有指定输入文件,pandoc从标准输入读取。

若指定有多个输入文件,可以以空格分割。

默认输出是标准输出,可以使用-o选项输出到指定的文件中。


默认情况下,pandoc只产生文件片段,不是一个包含头尾的完整文件,如果需要产生一个独立的文件,使用-s或–standalone选项。比如生成HTML文件。

有时候输入文件可能是一个URI,此时pandoc可以通过http获取内容。

如果指定多个输入文件,pandoc也可以将多个文件合并转换成一个文件。当然,输入文件像EPUB、odt和docx这种,是不支持的

常用选项

选项 含义
-f FORMAT, -r FORMAT,–from=FORMAT, –read=FORMAT 指定输入文件的格式,若不指定,pandoc可以从明显的文件后缀名中推测,若无明显提示,默认的输入文件格式是markdown,默认的输出文件格式是html
-t FORMAT, -w FORMAT,–to=FORMAT, –write=FORMAT 指定输出文件的格式
-o FILE, –output=FILE 写输出到FILE文件而不是到标准输出
–list-input-formats 列出支持的输入文件格式
–list-output-formats 列出支持的输出文件格式
–list-extensions 列出支持的markdown扩展,+代表默认支持,-代表默认不支持
-s, –standalone 产生输出文件时附带适当的头注和脚注(比如html)

示例

pandoc -s -o readme.html readme.md

此例可以将md文件转换成html文件,因为从文件名中可看出文件类型,因此不需要指定输入输出文件类型。-s是为html文件加上头尾信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 打开终端窗口,windows下打开cmd
# 小试牛刀,将input.txt文件转换为output.html文件。-o参数表示输出文件
pandoc -o output.html input.txt

-f: 指定输入格式,比如docx、epub、md、html等
-t: 指定输出格式,比如docx、epub、md、html等
-o: 输出到file文件
--verbost: 显示详细调试信息
--log: 指定输出日志信息

--list-input-formats:列出支持的输入格式。
--list-output-formats:列出支持的输出格式。
--list-extensions:列表支持Markdown扩展,后面跟一个+或者-说明是否在pandoc的Markdown中默认启用。
--list-highlight-languages:列出语法突出显示支持的语言。
--list-highlight-styles:列出支持语法高亮的样式。。
-v: 打印版本信息。
-h:显示语法帮助1234567891011121314151617

更多详细命令,参看官方文档

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 一些例子
# 获取网页内容,并将其转换为markdown格式(感觉可以用来写简易爬虫)
pandoc -f html -t markdown http://www.fsf.org

# 将input.txt文件作为markdown输入,转换为latex
pandoc -f markdown -t latex input.txt

# 如果未指定-f、-t,pandoc则会根据输入文件输出文件的后缀来转换
pandoc input.txt -o output.pdf

# pandoc要求输入输出使用utf8编码,可以使用iconv命令进行编码转换
iconv -t utf-8 input.txt | pandoc | iconv -f utf-8

# 如果需要使用tex生成pdf文件,则需要下载latex编译器
来了,老弟
-------------    本文结束  感谢您的阅读    -------------
0%