pandoc 模板基本语法和变量

转换命令示例: pandoc --standalone --template template.html doc.md -o doc.html

官方文档: https://pandoc.org/MANUAL.html#templates

基本语法介绍:

$-- 和行尾之间的任何内容都将被视为注释,不会出现在输出结果中。

$-- comment line

在模板中,可以使用 $$ or ${} 作为变量和控制结构的标记。这两种样式也可以在同一模板中混用,但每种情况下的开头和结尾定界符必须匹配。开头定界符后面可以跟随一个或多个空格或制表符,这些将被忽略。结尾定界符前面可以有一个或多个空格或制表符,这些也将被忽略。

如果需要在文档中包含一个字面上的 $,则使用 $$

插值变量
插值变量的位置由匹配的定界符包围的变量名标记。变量名必须以字母开头,可以包含字母、数字、_-.. 关键词 itifelseendifforsependfor 不可用作变量名。例如:

$foo$
$foo.bar.baz$
$foo_bar.baz-bim$
$ foo $
${foo}
${foo.bar.baz}
${foo_bar.baz-bim}
${ foo }

带有句点的变量名用于获取结构化变量值。例如,employee.salary 将返回 employee 字段值的 salary 字段的值。

如果变量的值是简单值,它将被逐字呈现。(注意,不进行任何转义;假定调用程序将适当地为输出格式转义字符串。)
如果值是列表,值将被连接起来。
如果值是映射,将呈现字符串 true。
其他任何值将被呈现为空字符串。

标题、作者和日期等,以及语言变量。另见笔记 pandoc 模板之元数据变量

单独适配 HTML 相关部分的变量,另见笔记 pandoc 模板之HTML变量

https://pandoc.org/MANUAL.html#conditionals

https://pandoc.org/MANUAL.html#for-loops

单独适配某些文档格式的语法规则,参考官方手册