我可以用pandoc中的YAML标题选项控制什么?

时间:2014-10-16 02:41:14

标签: yaml pandoc

我只是偶然看到一个示例文档,它在Markdown文件中的YAML标题选项中使用toc: true行,由Pandoc处理。并且Pandoc docs没有提及此选项来使用YAML标头控制目录。此外,我在同一个Pandoc自述文件站点的示例文档中看到了一些任意行。

主要问题:

  • 使用YAML标头可以使用哪些Pandoc选项?

元的问题:

  • 什么决定了可以使用YAML标头设置的可用Pandoc选项?

注意:我的工作流程是使用Markdown文件(.md)并通过Pandoc处理它们以获取PDF文件。它采用分层次组织的手稿编写与数学。如:

pandoc --standalone --smart \
    --from=markdown+yaml_metadata_block \
    --filter pandoc-citeproc \
    my_markdown_file.md \
    -o my_pdf_file.pdf

3 个答案:

答案 0 :(得分:24)

实际上,它都包含在Pandoc的MANUAL中。具体做法是:

  

模板可能包含变量。

例如,在您的HTML template中,您可以写:

<title>$title$</title>

可以使用--variable KEY[=VAL]选项设置这些模板变量。

但是,它们也是根据文档元数据设置的,而元数据又可以通过以下方式设置:

--variable选项将字符串逐字插入到模板中,而--metadata转义字符串。 YAML元数据中的字符串(当使用--metadata-file时)也被解释为markdown,您可以通过使用pandoc markdown的generic raw attributes来规避。例如,对于HTML输出:

`<script>alert()</script>`{=html}

请参阅此table for a schematic of --variable vs --metadata vs YAML metadata

要回答您的问题:模板确定YAML元数据块中的哪些字段有效。例如,要查看乳胶模板,请使用:

$ pandoc -D latex

要查看由pandoc see the Manual自动设置的一些变量。最后,pandoc的其他行为(例如markdown扩展等)只能设置为命令行选项(使用wrapper script时除外)。

答案 1 :(得分:12)

这是一个相当长的列表,您可以通过在命令行中运行body { background-color:#222222; }并导航到&#34;由pandoc&#34;设置的变量来浏览。 &#34; TEMPLATES。&#34;

下的部分

列表的顶部包括以下许多选项:

<canvas id="myCanvas" width="550" height="400"></canvas>

```

答案 2 :(得分:3)

您可以查看pandoc的文档以获取线索:http://pandoc.org/getting-started.html

但要确切了解它的使用位置,您可以查找pandoc的模板来源:https://github.com/jgm/pandoc-templates

例如,对于html5输出,文件为:https://github.com/jgm/pandoc-templates/blob/master/default.html5

以下是代码的一部分:

<title>$if(title-prefix)$$title-prefix$ - $endif$$pagetitle$</title>

您可以看到它有title-prefixpagetitle

您可以查看文档,但最佳解决方案是查找您正在使用的版本的源代码。