Pandoc 是一种将各类文件互相转换的工具,例如 docx、html、markdown、epub、pdf 等,在一些 markdown 写作工具中,它常被用作导出工具的一种。

Pandoc 的安装

安装方法有很多种。

方案一:直接通过 Pandoc 提供的安装包

下载链接在 github 上

方案二:包管理应用

  1. Mac 用户可以通过 Homebrew 来安装,brew install pandoc
  2. Ubuntu / Debian 用户可以通过 sudo apt install pandoc 来安装
  3. CentOS 可以通过 yum install pandoc 来安装
  4. 也可以安装科学包管理工具 Anaconda ,过程中会自动安装 Pandoc

基础使用

请打开命令行工具。

# 读取文件
pandoc -f 输入格式 -t 输出格式 -o 输出文件名 输入文件
# 读取网页
pandoc -f html -t 输出格式 -o 输出文件名 --request-header User-Agent:"Mozilla/5.0" \https://www.fsf.org

可以通过以下命令查看更多选项帮助

pandoc --help
# 或
man pandoc

常见的输入 / 输出格式

格式 参数
CSV 表格 csv
Word 文档 docx
EPUB 电子书 epub
HTML 网页 html
Markdown 文档 markdown
PDF 文档(仅支持输出) pdf
PPt 文档(仅支持输出) pptx
JSON 数据 json

可以通过指令查看支持的格式

pandoc --list-input-formats
pandoc --list-output-formats

导出 Word 文档设置

--toc # 生成目录
--toc-depth=NUMBER # 生成的目录深度
--wrap=auto|none|preserve # 文字换行方式
--reference-doc=FILE # 指定模板

默认的 word 模板可以通过命令来查看

pandoc --print-default-data-file reference.docx > custom-reference.docx

默认的模板出现将在当前目录下的 custom-reference.docx 下,你可以对各个文字样式、默认表格样式进行修改。
Mac 的用户需要注意,使用 Pages 对模板文件进行修改会导致模板失效,需要使用 Office 进行编辑,并使用兼容模式进行保存。

文字样式可以在开始菜单中,找到对应的样式,进行修改

表格样式需要选中文档中的表格部分,选择 表格工具 > 设计 > 修改表格样式 来修改

修改完成后,可以通过 --reference-doc=custom-reference.docx 来指定模板。
也可以将模板文件放置到 Pandoc 的数据文件夹下,并命名为 reference.docx,后续 Pandoc 将把这个文件作为默认模板进行使用。
这里的数据文件夹,可以在 pandoc -v 指令的打印信息中,通过 data-dir 字段来获取。

导出 HTML 网页设置

-s 或 --standalone # 在生成的 html 文件中包含 head、body 等 html 文件的必要组成部分
--self-contained # 内嵌资源,不产生任何外部依赖
--data-dir=DIRECTORY # 读取资源的目录
# 模板设置
--template=FILE|URL # 使用模板进行渲染
-V KEY[=VAL], --variable=KEY[:VAL] # 将模板中的变量设置为对应的值

我们可以定制模板

pandoc --print-default-template=html > template.html # 查看默认的模板,并输出到 template.html

导出 EPUB 文档设置

--epub-cover-image=FILE # 设置封面
--epub-metadata=FILE # 设置媒体信息
--epub-embed-font=FILE # 设置字体

设置 metadata

metadata 是导出格式中的一些信息,例如作者、日期、简介等等,在 EPUB、PDF、Word 等格式中有一定作用。
可以在命令行中指定 metadata

-M KEY[=VAL], --metadata=KEY[:VAL] # 将 KEY 的内容设置为 VAL
--metadata-file=FILE # 读取 FILE 中的内容作为 metadata

也可以在文件中顶部对 metadata 进行声明,使用 YAML 语法

---
# 该部分必须在文档的顶部
# 顶部和底部的 三个横线必须保留
title: 标题
author:
- 作者 1
- 作者 2
date: 日期
keywords: [关键词 1, 关键词 2]
abstract: |第一段第二段
---

Pandoc 实用教程相关推荐

  1. MySQL数据库实用教程考核_《MySQL数据库实用教程》郑明秋,蒙连超,赵海侠【pdf】...

    内容简介 郑明秋.蒙连超.赵海侠主编的<MySQL数据库实用教程>是作者在多年的数据库开发实践与教学经验的基础上,根据计算机相关专业的职业岗位能力需求及学生的认知规律倾心组织编写的.本教材 ...

  2. 【深度学习】基于PyTorch的模型训练实用教程之数据处理

    [深度学习]基于PyTorch的模型训练实用教程之数据处理 文章目录 1 transforms 的二十二个方法 2 数据加载和预处理教程 3 torchvision 4 如何用Pytorch进行文本预 ...

  3. 【SSM】Kisso实用教程之验证码简单使用(一)

    先来张效果图展示一下 Maven坐标: <dependency><groupId>com.baomidou</groupId><artifactId>k ...

  4. map 长度_Python实用教程系列——高阶函数Map、Filter、Reduce

    点击上方蓝色文字关注我们吧 有你想要的精彩 作者 | 那个百分十先生出品 | Python知识学堂 上次推文我们介绍了python中的<Logging日志模块>的相关知识,这次推文我们将学 ...

  5. python教材目录_Python实用教程/高等院校信息技术规划教材简介,目录书摘

    编辑推荐: 本书简洁.凝练地介绍目前十分流行的跨平台粘性语言--Python的核心内容.既可以帮助初学者快速上手编程,也可作为想了解Python语言特点的专业人士的参考书. 每个知识点后都有大量实用的 ...

  6. java2实用教程第5版第九章_java2实用教程(例子代码)第4版第九章.doc

    java2实用教程(例子代码)第4版第九章 java2实用教程(例子代码)第4版第九章 例9_3 Lt4_3.java public clss Lt4_3 { public static void m ...

  7. 搜索引擎设计实用教程(5)-以百度为例

    /*版权声明:可以任意转载,转载时请务必标明文章原始出处和作者信息 .*/ 搜索引擎设计实用教程(5)-以百度为例 之五:CACHE结构 中科院软件所  张俊林 2006年1月4日 Cache是目前实 ...

  8. 搜索引擎设计实用教程(4)-以百度为例

    /*版权声明:可以任意转载,转载时请务必标明文章原始出处和作者信息 .*/ 搜索引擎设计实用教程(4)-以百度为例 之四:相关提示功能                              中科院 ...

  9. 搜索引擎设计实用教程(3)-以百度为例

    /*版权声明:可以任意转载,转载时请务必标明文章原始出处和作者信息 .*/ 搜索引擎设计实用教程(3)-以百度为例 之三:对百度分词算法的进一步分析                           ...

  10. 搜索引擎设计实用教程(2)-以百度为例

    /*版权声明:可以任意转载,转载时请务必标明文章原始出处和作者信息 .*/ 搜索引擎设计实用教程(2)-以百度为例 之二:Spelling Checker拼写检查错误提示(以及拼音提示功能) 中科院软 ...

最新文章

  1. 干货 | 一文教你如何快速高效阅读Paper(硕士生版)
  2. Dependabot:自动创建GitHub PR修复潜在漏洞
  3. Python Module_os_操作系统
  4. JDK8新特性(三)之常用内置函数式接口
  5. 流行-Manifold【0】-维基百科中文版本解释
  6. 苹果+beta+软件测试计划,自讨苦吃:加入苹果Apple Beta版软件计划之后
  7. 《托马斯大学微积分》习题1.4——31
  8. 2022年地理信息系统与遥感专业就业前景与升学高校排名选择
  9. 树莓派引脚介绍与GPIO的初步认识与应用
  10. 如何格式化写保护的U盘(删除多个盘的U盘)
  11. Matlab的plot函数、fplot函数
  12. 阿里云互动课堂解决方案助力淘宝教育,打造普惠教育平台
  13. DVWA环境搭建教程-手把手最详细介绍
  14. 祖传代码,是如何变成一堆屎山的?
  15. Ubuntu下安装mplayer
  16. vc获取计算机用户名,vc获取计算机名和ip地址的方法
  17. 现在我们家BB 28周了
  18. 输入法智能化发展历程——第三代输入法崭露头角
  19. 【LINUX 常用基本命令】--最全最详细整理
  20. JavaSE 学Java语言的前情概要

热门文章

  1. python 通信中间件_python 终极篇 ---- 中间件
  2. C++核心准则边译边学-不必惊慌!
  3. Android数据持久化存储(一)
  4. LOJ#6198. 谢特【后缀自动机/数组 + Trie树查异或最大值 + Trie树合并】
  5. php file_put_contents 保存不了,php file_put_contents不能写入问题
  6. html怎么引用网页链接,浅谈网页中各种链接引用方法
  7. 电脑运行速度(卡不卡)的决定因素
  8. 数字电路——流水灯(一)
  9. 华为HCNA实验操作之常用操作命令32-40
  10. 网站实用性是这样建出来的