4.3 模板
当 Pandoc 将 Markdown 转换为另一种输出格式时,它在幕后使用模板。模板是一个纯文本文件,其中包含一些格式为 $variable$
的变量。这些变量将由 Pandoc 生成的值替换。下面是一个非常简短的 HTML 输出模板:
它有两个变量 title
和 body
。title
的值来自 YAML 元数据的 title
字段,body
是从 Markdown 输入文档的正文生成的 HTML 代码。例如,假设我们有一个 Markdown 文档:
如果我们使用上述文档生成 HTML 文档,其源代码如下:
<html>
<head>
<title>一本好书</title>
</head>
<body>
<h1>简介</h1>
<p>这是一本<strong>优秀的</strong>书!</p>
</body>
</html>
实际的 HTML、LaTeX 和 EPUB 模板更加复杂,但其中的核心思想是一样的。你需要知道哪些变量可以使用:有些变量是内置的 Pandoc 变量,有些可以由用户在 YAML 元数据中定义,或者从命令行选项 -V
或 --variable
传递。某些变量仅在特定的输出格式中有意义,例如,documentclass
变量仅用于 LaTeX 输出。请参阅 Pandoc 文档以了解有关这些变量的更多信息,你可以在 GitHub 存储库 https://github.com/jgm/pandoc-templates 中找到所有默认的 Pandoc 模板。
请注意,对于 HTML 输出,bookdown 需要模板中的一些附加注释标记,我们已经在第 3.1.3 节中对它们进行了解释。