美文网首页
Pandoc简单运用实例

Pandoc简单运用实例

作者: SpaceCat | 来源:发表于2023-02-26 00:02 被阅读0次

    这里介绍通过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无法识别这个标题
    目录结构截图如下:

    image.png

    3.3 将多个markdown合并为html

    运行如下命令:

    $ pandoc -s *.md --toc --toc-depth=5 --number-sections -o test.html
    

    其中,--toc --toc-depth=5用来设置添加目录和目录对应的标题层级,-s的意思是在standalone(在生成的html中包含完整的head等标签)。
    效果如下:

    image.png

    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'设置中英文字体等。
    效果如下:

    image.png

    4、参考资料

    相关文章

      网友评论

          本文标题:Pandoc简单运用实例

          本文链接:https://www.haomeiwen.com/subject/tnuqldtx.html