Pandoc元数据未出现在默认HTML模板中

时间:2018-12-22 20:05:43

标签: html yaml pandoc

我正在使用pandoc将org和markdown文件转换为HTML。我想在外部YAML文件中设置元数据,例如titlesubtitleauthor标签,并使用模板显示它们。但是,除了正常的身体转换之外,我什么也看不见。

我正在使用默认的HTML模板。我已经预先运行了将YAML配置串联的转换:

pandoc -t html -o output.html metadata.yaml input.md

我还尝试了添加yaml_metadata_block扩展名:

pandoc -t html+yaml_metadata_block -o output.html metadata.yaml input.md

此外,我尝试在命令本身中设置变量:

pandoc -t html -o output.html -V title="my title" input.md

我的YAML文件如下:

---
title: "my title"
subtitle: "my subtitle"
author: "the author"
...

使用pandoc -D html检查默认的html模板,看起来当定义title等时,它将放置在标题块中:

$if(title)$
<header>
<h1 class="title">$title$</h1>
$if(subtitle)$
<p class="subtitle">$subtitle$</p>
$endif$
$for(author)$
<p class="author">$author$</p>
$endfor$
$if(date)$
<p class="date">$date$</p>
$endif$
</header>

但是在每种情况下,html文件仅包含来自input.md的转换后的文本。我认为这是默认模板中定义的$body$行。

如何使这些字段显示在html文档中?

1 个答案:

答案 0 :(得分:2)

天哪,我所缺少的只是-s属性!

从手册页:

-s, --standalone
          Produce output with an appropriate header and footer (e.g.  a standalone HTML, LaTeX, TEI, or RTF file, not a fragment).  This option is set automat‐
          ically for pdf, epub, epub3, fb2, docx, and odt output.

因此以下命令可以正常工作

pandoc -s -t html -o output.html metadata.yaml input.md