这里介绍通过Pandoc这个工具,合并多个Markdown文件,输出到html、pdf等。所有例子的运行环境,均在macOS下。
1、Pandoc介绍
Pandoc是使用Haskell语言编写的一款跨平台、自由开源及命令行界面的标记语言转换工具,可实现不同标记语言间的格式转换,堪称该领域中的“瑞士军刀"。
2、基本语法
Pandoc的基本指令格式是:
pandoc [options] [input-file] ...
简单的格式转换指令:
pandoc -o output.html input.md
其中-o ouput.html
表示输出文件为output.html,input.md是输入文件。
Pandoc会根据文件的后缀名自动判断格式,用户也可以显式地指定输入文件和输出文件格式:
pandoc -f markdown -t html -o output.html input.md
其中-f markdown
表示输入文件格式为Markdown,-t html
表示输出文件格式为HTML。
3、利用Pandoc合并Markdown文件
3.1 场景说明
如果一个Markdown文件特别大,编辑起来会非常不方便。最好能将每一个章节分别在一个单独的文件中编辑,然后,最后能够合并转换为html、pdf。这里就介绍如何通过Pandoc这个工具来实现。
3.2 测试文档
测试文档放在test目录下,每个章节有单独占一个文件,每个章节有序号作为文件名。
01_GoodsOfCats.md
:
---
# 该部分必须在文档的顶部
# 顶部和底部的 三个横线必须保留
title: 让我们一起来养猫吧!
author:
- 美paopao
- 丑泡泡
date: 2023-02-26
keywords: [养猫, 宠物]
abstract: |
摘要第一段,养猫可以培养人的爱心和耐心,同样可以给人带来愉悦的身心和放松的心情。
摘要第二段,养猫需要耗费很多精力,也会收获很多快乐,值得一试。
---
第一章,主要介绍养猫的好处。
# 养猫的好处
养猫可以培养人的爱心和耐心。养猫同样可以给人带来愉悦的身心和放松的心情。养猫的过程,其实是一个和自己相处,然后和解,最后接纳的过程。
第一个文件中,放了整个文件的标题、作者、摘要等信息。pandoc在生成最后的文件时,会读取这个部分的内容,添加在文件的最前面。
02_HowToFeedCats.md
:
第二章,主要讲如何养猫
# 如何养猫
需要给猫准备稳定的住所,准备猫砂盆、水碗和食盆。
03_GainsFromCats.md
:
第三章,主要将养猫的收获。
# 养猫的收获
将收获平和的心态,每天的好心情,还有就是沾满衣服的猫毛。
这里需要注意,每个标题前面必须要有一个空行,不然pandoc无法识别这个标题。
目录结构截图如下:
3.3 将多个markdown合并为html
运行如下命令:
$ pandoc -s *.md --toc --toc-depth=5 --number-sections -o test.html
其中,--toc --toc-depth=5
用来设置添加目录和目录对应的标题层级,-s
的意思是在standalone(在生成的html中包含完整的head等标签)。
效果如下:
3.4 将多个markdown合并为pdf
运行如下命令:
$ pandoc -N --toc --toc-depth=5 --number-sections --pdf-engine=xelatex -V CJKmainfont='STFangsong' -V mainfont='Times New Roman' -V geometry:margin=1in -s *.md -o output.pdf
这里面,有些参数我也没管怎么用。重要的是,--pdf-engine=xelatex
设置tex引擎,-V CJKmainfont='STFangsong' -V mainfont='Times New Roman'
设置中英文字体等。
效果如下:
网友评论