Linux: Pandoc文件转换器
- TAG: 编码
pandoc https://pandoc.org/
Pandoc 是一个用于从一种标记格式转换为另一种标记格式的Haskell 库,以及一个使用该库的命令行工具。
pandoc支持多少文件格式的相互转换,基本满足日常需求。下面介绍简单的使用。
.org
文件可以很轻松的通过 org-md-export-to-markdown
生成 .md
文件。 .md
文件可以借助 Pandoc 生成 .org
#常规选项 -f <format>, -r <format> #指定输入文件格式,默认为 Markdown; -t <format>, -w <format> #指定输出文件格式,默认为 HTML; -o <file> #指定输出文件,该项缺省时,将输出到标准输出; --verbose #开启 Verbose 模式,用于 Debug; --list-input-formats #列出支持的输入格式; --list-output-formats #列出支持的输出格式; --list-extensions #列出支持的 Markdown 扩展方案; --list-highlight-languages #列出支持代码高亮的编程语言; --list-highlight-styles #列出支持的代码高亮主题; -v, --version #显示程序的版本号; -h, --help #显示程序的帮助信息。 --toc #生成目录 #阅读器选项 --extract-media=DIR #将源文档图像和其他媒体文件提取到DIR/media目录中,并调整文档中的图像引用。 #常规作家选项 --template=FILE #使用自定义模板文件 (对 LaTeX, HTML, DOCX 等格式尤其有用)。 -s --standalone #生成带有适当页眉和页脚的输出(HTML,LaTeX,TEI 或 RTF); --wrap=auto| none|preserve #如何换行。auto(默认值),指定列宽 --columns(默认72)。none:完全不换行。preserve:保留源文档中的换行 --toc / --table-of-contents#生成目录 (适用于 HTML, LaTeX, EPUB, DOCX 等)。 --toc-depth=NUMBER #设置目录包含的标题级别深度 (例如 --toc-depth=3 包含 H1-H3)。 -V KEY[=VAL] #设置模板变量 (对 LaTeX 模板非常有用,如设置纸张大小 papersize, 字体大小 fontsize) --highlight-style <style> #设置代码高亮主题,默认为 pygments; #影响特定作者的选项 --reference-links[=true|false] #默认情况下使用内联链接 --pdf-engine=PROGRAM #指定生成 PDF 的引擎 (常用 pdflatex, xelatex, lualatex, wkhtmltopdf, weasyprint) --reference-doc=文件|网址 #使用指定的文件作为生成 docx 或 ODT 文件的样式参考 -c 网址--css= #链接到 CSS 样式表 #引文渲染 -C,--citeproc #处理引用 (需要 BibTeX 或 CSL JSON 格式的参考文献数据库文件,并通过 --bibliography 指定)。 --bibliography=FILE #指定参考文献数据库文件 (.bib 或 .json)。 #HTML 中的数学渲染 --mathml / --webtex / --mathjax / --katex: 指定数学公式的渲染方式 (适用于 HTML 输出)
范例:
#ORG, HTML 互转 pandoc -f html -t org -o h.org h.html # html 转 org pandoc -f org -t html -o h.html h.org # org 转 html #ORG, Markdown互转 pandoc -f markdown -t org -o a.org a.md # markdown 转 org pandoc -f org -t markdown -o a.md a.org # org 转 markdown #Markdown, HTML 互转 pandoc -f html -t markdown a.html -o a.md # pandoc a.md -s -o a.html --css=styles.css --toc # markdown 转 html #将 article.md 转为完整的 HTML 文件 article.html (-s)。链接外部 CSS 样式表 styles.css。生成目录。 #Markdown, Word (DOCX)互转 pandoc input.md -o output.docx --reference-doc=custom_template.docx --toc # markdown 转 word #使用 custom_template.docx 文件中定义的样式、页眉页脚等。生成目录 (--toc)。 pandoc -f docx -t gfm --wrap=none --reference-links --extract-media=./ a.docx -o b.md # word 转 markdown pandoc -f docx -t markdown_mmd --extract-media=./ a.docx -o d.md # word 转 markdown #--extract-media=./ #保存图像,放到media文件夹中 #Github 的默认格式使用 gfm,它也支持表格 #MultiMarkdown 支持元数据、目录、脚注、数学、表格和 YAML #多个输入文件合并转换: pandoc intro.md chap1.md chap2.md refs.md -o book.docx #按顺序合并后转换为单个 Word 文档 #Markdown, PDF互转 pandoc paper.md --citeproc --bibliography=references.bib -o paper.pdf --pdf-engine=pdflatex # markdown 转 pdf 启用引用处理 (--citeproc)。指定参考文献数据库文件 references.bib (--bibliography)。 pandoc report.md -o report.pdf --pdf-engine=xelatex -V mainfont="Microsoft YaHei" -V geometry:margin=1in # pdf 转 markdown 使用 xelatex 引擎 (支持 Unicode/中文字体更好)。 设置 mainfont 变量为 "Microsoft YaHei" (确保系统有此字体)。 使用 geometry LaTeX 包变量设置页边距为 1 英寸。 #Markdown 转 Reveal.js 幻灯片 pandoc slides.md -t revealjs -s -o presentation.html -V revealjs-url=https://revealjs.com # markdown 转 revealjs 幻灯片 设置 revealjs-url 变量指向 Reveal.js 库的位置。 #Markdown 转 PowerPoint (PPTX): pandoc p.md -o presentation.pptx # markdown 转 PPTX #Pandoc 会自动处理标题级别分割幻灯片。