本帖最后由 虫子 于 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 formats Word processor formats Ebooks Documentation formats Archival formats Page layout formats Outline formats TeX formats PDF via pdflatex, xelatex, lualatex, pdfroff, wkhtml2pdf, prince, or weasyprint. Lightweight markup formats Markdown (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 formats custom 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值得好好研究一下。
|