本帖最后由 虫子 于 2018-3-29 00:07 编辑
前言
上回说到,Typora拥有强大的导入导出功能,它的实现通过一个强大的软件,这个软件就是本篇的主角——Pandoc。许多编辑器的格式转换功能都是调用Pandoc实现的。
介绍
丑化说在前头,Pandoc是命令行软件,没有界面,适应不了命令行的坛友可以先撤了。Pandoc支持的格式非常丰富,官网说明如下:
Pandoc can convert documents in (several dialects of) Markdown, reStructuredText, textile, HTML, DocBook, LaTeX, MediaWiki markup, TWiki markup, TikiWiki markup, Creole 1.0, Vimwiki markup, OPML, Emacs Org-Mode, Emacs Muse, txt2tags, Microsoft Word docx, LibreOffice ODT, EPUB, or Haddock markup to- HTML formatsXHTML, HTML5, and HTML slide shows using Slidy, reveal.js, Slideous, S5, or DZSlides
- Word processor formatsMicrosoft Word docx, OpenOffice/LibreOffice ODT, OpenDocument XML, Microsoft PowerPoint.
- EbooksEPUB version 2 or 3, FictionBook2
- Documentation formatsDocBook version 4 or 5, TEI Simple, GNU TexInfo, Groff man, Groff ms, Haddock markup
- Archival formatsJATS
- Page layout formatsInDesign ICML
- Outline formatsOPML
- TeX formatsLaTeX, ConTeXt, LaTeX Beamer slides
- PDFvia pdflatex, xelatex, lualatex, pdfroff, wkhtml2pdf, prince, or weasyprint.
- Lightweight markup formatsMarkdown (including CommonMark and GitHub-flavored Markdown), reStructuredText, AsciiDoc, Emacs Org-Mode, Emacs Muse, Textile, txt2tags, MediaWiki markup, DokuWiki markup, TikiWiki markup, TWiki markup, Vimwiki markup, and ZimWiki markup.
- Custom formatscustom writers can be written in lua.
我知道这一大堆莫名其妙的术语你们是不会看的,我把一般人常用的挑出来:
输入:
markdown及其各种拓展、HTML、LaTeX、OPML、Microsoft Word docx、LibreOffice ODT、epub
输出:
- HTML:HTML5、HTML slide(可以做幻灯片)
- Word:Microsoft Word docx、Microsoft PowerPoint pptx、LibreOffice ODT
- PDF
- 电子书:epub
- 大纲:OPML(可用于网络订阅)
- TeX:LaTeX、LaTeX Beamer slides
- 轻量级标记语言:Markdown及其各种拓展、AsciiDoc、json
- 自定义格式:请用Lua语言编写模块,或调用别人写好的模块
Pandoc支持的很多格式其实也都是调用其他开源软件实现的,所以Pandoc设计之初就有很强的拓展性。上述格式中有不少好货,特别是HTML5,都知道H5现在很强大,Markdown接入H5的生态,也为后面各种“不务正业”提供了可能。
安装
所有平台安装里,就属Windows最简单了,下载-安装-完事,一气呵成。人家还提供了绿色版,不过不建议萌新使用绿色版,因为在命令行中使用需要些许配置。
使用
安装完后,打开cmd,输入pandoc --version,如果得到版本信息,就说明没得问题了。
全选
- pandoc.exe 2.1.3
- Compiled with pandoc-types 1.17.4.2, texmath 0.10.1.1, skylighting 0.7.0.2
- Default user data directory: C:\Users\zyp\AppData\Roaming\pandoc
- Copyright (C) 2006-2018 John MacFarlane
- Web: http://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 --help。
一般使用
pandoc功能非常复杂,使用起来也有很多细节参数,一般人没必要管这些,想深入的去官网看UserGuide。我这里直接给个最简单的套路:
全选
- cd <文件所在目录>
- pandoc -f <输入格式> -t <输出格式> -o <输出文件名> <输入文件名>
- 如:pandoc -f markdown -t html -o good.html good.md
- 使用 pandoc --list-input-formats查看所有输入格式
- 使用 pandoc --list-output-formats查看所有输出格式
输出PDF
细心的人可以看到,所有输出格式里并没有pdf,这是因为pandoc输出pdf实际上是调用Latex相关模块。先安装MikTex,然后使用如下命令:全选
- pandoc -f <输入格式> -o XXX.pdf <输入文件名> --pdf-engine=xelatex -V mainfont=SimSun
pdf引擎默认是pdflatex,但是这货不支持中文,于是换成xelatex,同时需要给定一个字体,中文字体名称对照表。
尾言
我知道很多坛友不会有兴趣去研究一个复杂的命令行工具,如果真的有需求不如直接在Typora里转换得了。但我还是要写这篇简介,pandoc是markdown生态中的重要工具,有必要知晓其存在。80页的官方英文文档也不算多,但是如果以后遇到高级一点的需求,pandoc值得好好研究一下。本文出处:www.zypnet.cn/1bd3/ ,欢迎转载!!!
这家伙太懒了,什么也没留下。