如何在 Markdown 中 include/input Markdown

在编写 LaTeX 文档的时候,我们可以通过简单的 \input 指令插入 LaTeX 源文件。但是 Markdown 中要想做到类似的事情,可就不能简单的 \input1

一个简单的方法是在执行编译命令时加入其他的 Markdown 参数,如:

pandoc 1.md 2.md -o index.html

或者使用通配符来匹配文档

pandoc *.md -o index.html

这种方法维护起来也算简单,因为将编译指令封装到 Makefile 中或者在 Markfile 中调用含有完整编译制定的 shell 文件都可以。

另外,我还发现这个项目 GitHub - jreese/markdown-pp: Preprocessor for Markdown files to generate a table of contents and other documentation needs 提供了另一个解决方案。即在一个预先给定的模版文件中,写好需要调用的文件:

!INCLUDE "main.md"
!INCLUDE "chapters/Introduction.md"

然后再按顺序执行编译命令即可:

# Compile the full markdown
markdown-pp main.mdpp -o main-full.md

# Compile to PDF
pandoc --pdf-engine=xelatex \
    -s \
    main-full.md
    -o main.pdf

# Remove temporary file
rm main-full.md

我正在写一个非技术文档,在考查了这些方法后,觉得可能直接上 LaTeX 也是可以接受的。

文档格式转换这个过程总会出现一些不完美的情况,如果真想试图减少转换格式时出现问题,那么就应当选择各种转换语言中最灵活强大的,我选择了 LaTeX。


  1. 20190403 更新:这么说有歧义,因为 iA Writer 内置了嵌入文档的设计,但是这个方法不通用,所以应该换成 Markdown 无法在设计时没有设计嵌入文档的方法。  

Comments
Write a Comment