变量
概述
在Quarto渲染的文档中,有多种方式可以包含动态变量。这对于外部化根据上下文变化的内容非常有用,或者作为在多个地方重复同一值的替代方案(例如版本号)。
例如,以下代码打印文档元数据中的title
:
{{< meta title >}}
这里使用的{{< meta >}}
语法是短代码的一个示例。Quarto支持以下用于动态变量的短代码:
短代码 | 描述 |
---|---|
var | 来自_variables.yml 文件的值 |
meta | 来自文档元数据的值 |
env | 系统环境变量的值 |
var
如果你正在使用Quarto项目,var
短代码允许你从项目级别的_variables.yml
文件中插入内容。在与_quarto.yml
项目文件相同的目录下创建该文件,然后在你项目的任何文档中引用这些变量。
变量可以是简单值,也可以包含任意Markdown内容。要定义变量,请在项目根目录下创建一个_variables.yml
文件。例如:
version: 1.2
email:
info: info@example.com
support: support@example.com
engine:
jupyter: "[Jupyter](https://jupyter.org)"
knitr: "[Knitr](<https://yihui.name/knitr>)"
注意,engine
变量的值包含了用于超链接的Markdown内容。
要包含一个变量的值,使用{{< var >}}
短代码,例如:
版本 {{< var version >}} 是一个小升级。
请联系我们 {{< var email.info >}}。
Quarto 包含 {{< var engine.jupyter >}} 和 {{< var engine.knitr >}} 计算引擎。
meta
meta
短代码允许你从Pandoc元数据(例如文档顶部的YAML和/或_quarto.yml
中的YAML)插入内容。
例如,以下短代码插入YAML元数据中title
字段的值:
{{< meta title >}}
你可以使用点(.
)分隔符来解引用子键。例如:
{{< meta labels.description >}}
你也可以使用点(.
)分隔符索引到数组中。例如,提取作者数组中的第一个:
{{< meta author.1 >}}
env
env
短代码允许你从环境变量中读取值。例如:
版本 {{< env PRODUCT_VERSION >}} 是一个小升级。
如果环境变量未设置,你可以通过提供第二个参数来提供一个回退值:
版本 {{< env PRODUCT_VERSION "*.*" >}} 是一个小升级。
你可以在环境变量中了解更多关于在Quarto项目中设置环境变量的信息。
转义
如果你正在编写关于使用变量短代码的文档(例如,本文!),你可能需要防止它们被处理。你可以通过两种方式实现这一点:
使用额外的花括号来转义短代码引用,如下所示:
{{{< var version >}}}
在你希望防止处理短代码的任何代码块中添加
shortcodes=false
属性:```{shortcodes=false} {{< var version >}} ```