使用Pandoc转换markdown等文本文档

核心提示:本文主要讲述使用Pandoc转换markdown等文本文档相关内容:本文介绍了使用Pandoc转换markdown等文本文档的方法,pandoc就是一个很好的文本格式转换器。pandoc这种格式转换器能把我们用markdown写成的书,转换成latex格式。然后对得到的latex做一些自定义处理,最终得到我们想要的pdf输出格式的过程。。

MarkDown 虽然写起来方便, 但是要预览的话还要用ReText打开, 很多人希望有一个把 markdown文件变成html格式 的工具,pandoc就是一个很好的文本格式转换器。pandoc这种格式转换器能把我们用markdown写成的书,转换成latex格式。然后对得到的latex做一些自定义处理,最终得到我们想要的pdf输出格式的过程。

Pandoc格式转换器介绍

基本说来,常用的格式pandoc都会支持。Pandoc输入格式可以是: MarkDown ,Textile, reStructuredText, HTML, LaTeX等,输出语言非常丰富,包括: markdown, reStructuredText, XHTML, HTML 5, LaTeX , ConTeXt,RTF, DocBook XML, OpenDocument XML, ODT, Word docx, GNU Texinfo, MediaWiki markup, EPUB, Textile, groff man, Emacs Org-Mode, AsciiDoc, Slidy, DZSlides, S5 HTML slide shows. 如果安装了 LaTeX ,甚至还可以输出为 PDF 格式!

当然,Pandoc Markdown不是万能的,表格、复杂公式、多国语言、上下标、交叉引用、图表对齐较多的场合,它并不适合。但是需要互动、实时展现、更快输出的场合,Pandoc Markdown等值得大力推荐。未来互联网会逼使写作趋简。需要更快发表、互动输出与交流的场合,也会越来越多。比如课堂作业、企业内部交流、个人博客。用它节省的时间是写作时比较关键的”创作时间”而非”排版时间”。

Pandoc使用方法

  1. 从 code.google.com/p/pandoc/downloads/list 下载适合操作系统的程序
  2. 安装的话,如果是windows,一路next就好了,会自动加入到system path里面
  3. 终端安装使用 sudo apt-get install pandoc
  4. pandoc是个命令行程序,所有操作通过命令行来完成

pandoc转换文本文档常用命令

常用参数

  • -f 输入格式(如果没有制定格式,则根据后缀名判断,如果没后缀名,则默认为markdown)
  • -t 输输出格式(默认为html)
  • -o 如果没有的话(默认是STDOUT)

Pandoc格式转换命令

a: 转换为html格式。这里—ascii可以避免转成utf-8编码,这样中文在浏览器上就不会乱码了。命令为

  1. pandoc -f markdown -t html higrid.net.txt -o newfile.html
  2. pandoc --ascii higrid.net.txt -o newfile.html

b: 转为pdf格式。注意,为了正确转换中文文本,请修改模板文件,在模板文件第一行下方加入 \usepackage{ctex} 命令为

  1. pandoc --latex-engine=xelatex yourfile.txt -o newfile.pdf

在windows 中使用时,新建文本文档,改后缀名为cmd,然后插入这样代码:

  1. cd
  2. pandoc -f markdown -t html in.txt -o out.html

保存后双击运行,就可以自动把当前目录下in.txt文件转换为out.html文件,非常方便!

详细的使用说明可以查找安装目录里面的 README.html 文件!看看帮助:

  1. $ pandoc -h
  2. pandoc [OPTIONS] [FILES]
  3. Input formats: native, markdown, markdown+lhs, rst, rst+lhs, html, latex, latex+lhs
  4. Output formats: native, html, html+lhs, s5, docbook, opendocument, odt, latex, latex+lhs, context, texinfo, man, markdown, markdown+lhs, plain, rst, rst+lhs, mediawiki, rtf
  5. Options:
  6. -f FORMAT, -r FORMAT --from=FORMAT, --read=FORMAT
  7. -t FORMAT, -w FORMAT --to=FORMAT, --write=FORMAT
  8. -s --standalone
  9. -o FILENAME --output=FILENAME
  10. -p --preserve-tabs
  11. --tab-stop=TABSTOP
  12. --strict
  13. --reference-links
  14. -R --parse-raw
  15. -S --smart
  16. -m[URL] --latexmathml[=URL], --asciimathml[=URL]
  17. --mathml[=URL]
  18. --mimetex[=URL]
  19. --jsmath[=URL]
  20. --gladtex
  21. -i --incremental
  22. --xetex
  23. -N --number-sections
  24. --no-wrap
  25. --sanitize-html
  26. --email-obfuscation=none|javascript|references
  27. --id-prefix=STRING
  28. --indented-code-classes=STRING
  29. --toc, --table-of-contents
  30. --base-header-level=LEVEL
  31. --template=FILENAME
  32. -V FILENAME --variable=FILENAME
  33. -c URL --css=URL
  34. -H FILENAME --include-in-header=FILENAME
  35. -B FILENAME --include-before-body=FILENAME
  36. -A FILENAME --include-after-body=FILENAME
  37. -C FILENAME --custom-header=FILENAME
  38. -T STRING --title-prefix=STRING
  39. --reference-odt=FILENAME
  40. -D FORMAT --print-default-template=FORMAT
  41. --data-dir=DIRECTORY
  42. --dump-args
  43. --ignore-args
  44. -v --version
  45. -h --help

真是more than I’ve expected! markdown/rst/html/latex之间可以互转!

使用pandoc命令就可以在随便转换了, 示例, 把demo.md输出成demo.html:

  1. `$pandoc -f markdown -t html -o demo.html demo.md`