Pandoc
通用标记转换器
Pandoc是一个Haskell库,用于将一种标记格式转换为另一种,同时也是一个使用该库的命令行工具。
它可以从以下格式转换:
bibtex
(BibTeX参考文献)biblatex
(BibLaTeX参考文献)bits
(BITS XML,jats
的别名)commonmark
(CommonMark Markdown)commonmark_x
(带扩展的CommonMark Markdown)creole
(Creole 1.0)csljson
(CSL JSON参考文献)csv
(CSV表格)tsv
(TSV表格)djot
(Djot标记)docbook
(DocBook)docx
(Word docx)dokuwiki
(DokuWiki标记)endnotexml
(EndNote XML参考文献)epub
(EPUB)fb2
(FictionBook2电子书)gfm
(GitHub风格的Markdown),或已弃用且不太准确的markdown_github
;仅当需要gfm
不支持的扩展时才使用markdown_github
。haddock
(Haddock标记)html
(HTML)ipynb
(Jupyter笔记本)jats
(JATS XML)jira
(Jira/Confluence wiki标记)json
(原生AST的JSON版本)latex
(LaTeX)markdown
(Pandoc的Markdown)markdown_mmd
(MultiMarkdown)markdown_phpextra
(PHP Markdown Extra)markdown_strict
(原始未扩展的Markdown)mediawiki
(MediaWiki标记)man
(roff man)muse
(Muse)native
(原生Haskell)odt
(OpenOffice文本文档)opml
(OPML)org
(Emacs Org模式)ris
(RIS参考文献)rtf
(富文本格式)rst
(reStructuredText)t2t
(txt2tags)textile
(Textile)tikiwiki
(TikiWiki标记)twiki
(TWiki标记)typst
(typst)vimwiki
(Vimwiki)- 自定义Lua读取器的路径,请参阅下面的自定义读取器和写入器
它可以转换为
Pandoc 还可以通过 LaTeX、Groff ms 或 HTML 生成 PDF 输出。
Pandoc 的增强版 Markdown 包括表格、定义列表、元数据块、脚注、引用、数学公式等语法。详见下方用户手册中的 Pandoc 的 Markdown。
Pandoc 采用模块化设计:它由一组读取器(用于解析给定格式的文本并生成文档的原生表示,即抽象语法树或 AST)和一组写入器(用于将这种原生表示转换为目标格式)组成。因此,添加输入或输出格式只需添加读取器或写入器即可。用户还可以运行自定义 pandoc 过滤器来修改中间 AST(参见过滤器和 Lua 过滤器的文档)。
由于 pandoc 对文档的中间表示比许多它所转换的格式更缺乏表现力,因此不应期望在每种格式之间都能完美转换。Pandoc 尝试保留文档的结构元素,但不保留格式细节,如页边距大小。而且某些文档元素,如复杂表格,可能不适合 pandoc 的简单文档模型。虽然从 pandoc 的 Markdown 到所有格式的转换都力求完美,但从比 pandoc 的 Markdown 更具表现力的格式进行转换可能会有所损失。
安装
文档
Pandoc 的网站包含完整的用户指南。它也以 pandoc 风格的 Markdown 格式在此提供。网站还包含一些 pandoc 使用示例和有限的在线演示。
贡献
欢迎提交拉取请求、错误报告和功能请求。在开启新议题之前,请务必阅读贡献者指南。
许可证
© 2006-2024 John MacFarlane (jgm@berkeley.edu)。根据 GPL 第 2 版或更高版本发布。本软件不附带任何形式的保证。(完整的版权和保证声明请参见 COPYRIGHT 文件。)