Pandoc是使用Haskell语言编写的一款跨平台、自由开源及命令行界面的标记语言转换工具,可实现不同标记语言间的格式转换,堪称该领域中的“瑞士军刀”。
from 格式类型:
bibtex
(BibTeX bibliography)biblatex
(BibLaTeX bibliography)bits
(BITS XML, alias for jats
)commonmark
(CommonMark Markdown)commonmark_x
(CommonMark Markdown with extensions)creole
(Creole 1.0)csljson
(CSL JSON bibliography)csv
(CSV table)tsv
(TSV table)docbook
(DocBook)docx
(Word docx)dokuwiki
(DokuWiki markup)endnotexml
(EndNote XML bibliography)epub
(EPUB)fb2
(FictionBook2 e-book)gfm
(GitHub-Flavored Markdown), or the deprecated and less accurate markdown_github
; use markdown_github only if you need extensions not supported in gfm.haddock
(Haddock markup)html
(HTML)ipynb
(Jupyter notebook)jats
(JATS XML)jira
(Jira/Confluence wiki markup)json
(JSON version of native AST)latex
(LaTeX)markdown
(Pandoc’s Markdown)markdown_mmd
(MultiMarkdown)markdown_phpextra
(PHP Markdown Extra)markdown_strict
(original unextended Markdown)mediawiki
(MediaWiki markup)man
(roff man)muse
(Muse)native
(native Haskell)odt
(ODT)opml
(OPML)org
(Emacs Org mode)ris
(RIS bibliography)rtf
(Rich Text Format)rst
(reStructuredText)t2t
(txt2tags)textile
(Textile)tikiwiki
(TikiWiki markup)twiki
(TWiki markup)typst
(typst)vimwiki
(Vimwiki)to 格式类型
asciidoc
(modern AsciiDoc as interpreted by AsciiDoctor)asciidoc_legacy
(AsciiDoc as interpreted by asciidoc-py).asciidoctor
(deprecated synonym for asciidoc
)beamer
(LaTeX beamer slide show)bibtex
(BibTeX bibliography)biblatex
(BibLaTeX bibliography)chunkedhtml
(zip archive of multiple linked HTML files)commonmark
(CommonMark Markdown)commonmark_x
(CommonMark Markdown with extensions)context
(ConTeXt)csljson
(CSL JSON bibliography)docbook
or docbook4
(DocBook 4)docbook5
(DocBook 5)docx
(Word docx)dokuwiki
(DokuWiki markup)epub
or epub3
(EPUB v3 book)epub2
(EPUB v2)fb2
(FictionBook2 e-book)gfm
(GitHub-Flavored Markdown), or the deprecated and less accurate markdown_github
; use markdown_github only if you need extensions not supported in gfm.haddock
(Haddock markup)html
or html5
(HTML, i.e. HTML5/XHTML polyglot markup)html4
(XHTML 1.0 Transitional)icml
(InDesign ICML)ipynb
(Jupyter notebook)jats_archiving
(JATS XML, Archiving and Interchange Tag Set)jats_articleauthoring
(JATS XML, Article Authoring Tag Set)jats_publishing
(JATS XML, Journal Publishing Tag Set)jats
(alias for jats_archiving
)jira
(Jira/Confluence wiki markup)json
(JSON version of native AST)latex
(LaTeX)man
(roff man)markdown
(Pandoc’s Markdown)markdown_mmd
(MultiMarkdown)markdown_phpextra
(PHP Markdown Extra)markdown_strict
(original unextended Markdown)markua
(Markua)mediawiki
(MediaWiki markup)ms
(roff ms)muse
(Muse)native
(native Haskell)odt
(OpenOffice text document)opml
(OPML)opendocument
(OpenDocument)org
(Emacs Org mode)pdf
(PDF)plain
(plain text)pptx
(PowerPoint slide show)rst
(reStructuredText)rtf
(Rich Text Format)texinfo
(GNU Texinfo)textile
(Textile)slideous
(Slideous HTML and JavaScript slide show)slidy
(Slidy HTML and JavaScript slide show)dzslides
(DZSlides HTML5 + JavaScript slide show)revealjs
(reveal.js HTML5 + JavaScript slide show)s5
(S5 HTML and JavaScript slide show)tei
(TEI Simple)typst
(typst)xwiki
(XWiki markup)zimwiki
(ZimWiki markup)Pandoc 可以基于LaTeX、Groff ms或HTML生成PDF。
Pandoc 针对Markdown 增强语法包含:包括表格、定义列表、元数据块、脚注、引文、数学等语法。
Pandoc 包含模块设计器,它由一组读取器和一组写入器构成。读取器主要用于解析指定文本并产生文档对象。写入器主要用于将文档对象转换为模板对象。用户基于Lua 实现自定义读取器和写入器的filter来修改AST。
1. 安装软件
1)首先打开官网地址下载好的安装包: pandoc-3.1.9-windows-x86_64.msi
Pandoc Github 下载 地址:https://github.com/jgm/pandoc/tags
我这里选择了 Pandoc 最新 版本:Windows_x86_64 位版本
2)不用更改设置,傻瓜式操作,下一步下一步完成
3)软件安装成功
2. 测试是否安装成功
1)打开CMD命令提示符
2)输入pandoc --version命令
3)会显示出pandoc的版本信息,则说明安装成功了
# 通过apt-get 下载pandoc
sudo apt-get install pandoc
Do you want to continue? [Y/n] Y
******
# 查看pandoc 版本信息验证是否安装成功
pandoc --version
******
1)如果没有指定输入文件,则从标准输入中实现读取。默认情况下输出为Output,输出至指定文件请使用参数:-o
Windows 演示:在D:\test 文件夹下新增input.text, 输入文本内容如下:"Hello Pandoc".
在CMD 窗口执行如下命令:D:\test>pandoc -o output.html input.txt
2)默认情况下,Pandoc 仅仅是生成HTML片段,希望生成 一个标准HTML页面,请使用参数:-s/-standalone.
在CMD 窗口执行如下命令:D:\test>pandoc -s -o output.html input.txt
CMD 窗口指令:
D:\test>pandoc -s -o output.html input.txt
[WARNING] This document format requires a nonempty element.
Defaulting to 'input' as the title.
To specify a title, use 'title' in metadata or --metadata title="...".
警告:标准文档要求title 标签对象非空,指定title 可以通过参数:--metadata title ="***" 实现添加。
CMD 窗口指令优化:
D:\test>pandoc -s -o output.html input.txt --metadata title="Html 标准格式"
效果截图:
3) 如果输入文件有多个,Pandoc 会自动将多个文件进行合并。请使用参数:--file-scope
Windows 演示:在D:\test 文件夹下新增input1.text, 输入文本内容如下:"Pandoc 多文件合并".
在CMD 窗口执行如下命令:D:\test>pandoc --file-scope -s -o output.html input.txt input1.txt --metadata title="HTML 标准格式"
效果截图:
4)Pandoc 指定输入格式,请使用参数:-f/--from, Pandoc 指定输出格式,请使用参数:-t/--to。实例:将hello.txt 文本转换为markdown,需要结合使用latex 工具。Pandoc 指令如下:
pandoc -f markdown -t latex hello.txt
实例:将基于Makedown 编写的HTML文件生成hello.html。Pandoc 指令如下:
pandoc -f html -t markdown hello.html
5) 查看Pandoc 支持的输入格式和输出格式,请使用如下指令:
D:\test>pandoc --list-input-formats
biblatex
bibtex
bits
commonmark
******
D:\test>pandoc --list-output-formats
asciidoc
asciidoc_legacy
asciidoctor
beamer
biblatex
bibtex
chunkedhtml
commonmark
commonmark_x
******
Pandoc 默认使用UTF-8字符编码处理输入和输出。如果你本地编码格式不是UTF-8, 你可以通过iconv设置编码格式。
iconv -t utf-8 input.txt | iconv -f utf-8
实例:将test.txt 文本生成PDF 文件,请使用如下指令:
pandoc test.txt -o test.pdf
默认情况下,Pandoc将使用LaTeX创建PDF,这需要安装LaTeX引擎(请参阅下面的--pdf-engine)。或者,Pandoc也可以使用ConTeXt、roff ms或HTML等中间件。指定PDF生成引擎可以通过--pdf-engine参数或者 -t context, -t html, or -t ms 。
你可以使用变量控制PDF的样式,主要取决于生成PD
pandoc -f html -t markdown --request-header User-Agent:"Mozilla/5.0" \
https://www.fsf.org
F选择的中间件,请参考LaTex 变量、ConTeXt变量、wkhtmltopdf变量、ms 变量。使用HTML作为中间控制PDF样式使用CSS变量控制。
实例:将基于Markdown 的网站:https://www.fsf.org.输出为HTML
pandoc -f html -t markdown https://www.fsf.org
添加头部请求参数:
pandoc -f html -t markdown --request-header User-Agent:"Mozilla/5.0" \
https://www.fsf.org
参考资料:
Pandoc 官网开发指南: https://pandoc.org/MANUAL.html