本文主要是介绍Pandoc 一文读懂,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.1Pandoc 简介
Pandoc是使用Haskell语言编写的一款跨平台、自由开源及命令行界面的标记语言转换工具,可实现不同标记语言间的格式转换,堪称该领域中的“瑞士军刀”。
1.1.1 Pandoc 支持转换格式
from 格式类型:
bibtex(BibTeX bibliography)biblatex(BibLaTeX bibliography)bits(BITS XML, alias forjats)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 accuratemarkdown_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)- 基于Lua 自定义读取
to 格式类型
asciidoc(modern AsciiDoc as interpreted by AsciiDoctor)asciidoc_legacy(AsciiDoc as interpreted by asciidoc-py).asciidoctor(deprecated synonym forasciidoc)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)docbookordocbook4(DocBook 4)docbook5(DocBook 5)docx(Word docx)dokuwiki(DokuWiki markup)epuborepub3(EPUB v3 book)epub2(EPUB v2)fb2(FictionBook2 e-book)gfm(GitHub-Flavored Markdown), or the deprecated and less accuratemarkdown_github; use markdown_github only if you need extensions not supported in gfm.haddock(Haddock markup)htmlorhtml5(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 forjats_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)- 基于Lua 自定义写入
1.1.2 Pandoc 功能拓展
Pandoc 可以基于LaTeX、Groff ms或HTML生成PDF。
Pandoc 针对Markdown 增强语法包含:包括表格、定义列表、元数据块、脚注、引文、数学等语法。
Pandoc 包含模块设计器,它由一组读取器和一组写入器构成。读取器主要用于解析指定文本并产生文档对象。写入器主要用于将文档对象转换为模板对象。用户基于Lua 实现自定义读取器和写入器的filter来修改AST。
1.2 Pandoc 安装
Window 10 安装Pandoc
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的版本信息,则说明安装成功了

Linux 安装Pandoc
# 通过apt-get 下载pandoc
sudo apt-get install pandoc
Do you want to continue? [Y/n] Y
******
# 查看pandoc 版本信息验证是否安装成功
pandoc --version
******
1.3 Pandoc 使用指南
Pandoc 使用
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 <title> 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指定格式
Pandoc 默认使用UTF-8字符编码处理输入和输出。如果你本地编码格式不是UTF-8, 你可以通过iconv设置编码格式。
iconv -t utf-8 input.txt | iconv -f utf-8
Pandoc 生成PDF
实例:将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变量控制。
Pandoc 基于web 生成
实例:将基于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
这篇关于Pandoc 一文读懂的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!