您可能希望在文档的各个位置插入用户定义或内置文档属性的值。要引用文档属性以进行插入,需将属性名用大括号括起来(例如,{attribute-name}
)。这种内联元素称为*属性引用*。AsciiDoc处理器将用属性的值替换属性引用。为了防止这种替换,你可以在元素前加上反斜杠(例如,\{attribute-name}
)。
引用自定义属性
在您可以在文档中引用自定义(即用户定义)属性之前,必须首先使用文档头部的属性条目来声明它。在在文档头部设置的自定义属性中,我们声明了两个用户定义的属性,稍后我们将能够引用它们。
= 操作手册
:disclaimer: Don't pet the wild Wolpertingers. We're not responsible for any loss of hair, chocolate, or purple socks. :url-repo: https://github.com/asciidoctor/asciidoctor
一旦你设置并赋值了一个文档属性,你就可以在整个文档中引用该属性。在文档正文中引用的自定义属性中,属性`url-repo`被引用了两次,而`disclaimer`被引用了一次。
Asciidoctor 是{url-repo}[开源的]。(1)
警告:{disclaimer} (2)
如果您丢失了一只酸橙色的袜子,请在
{url-repo}/issues[Asciidoctor 问题跟踪器]中提交一个工单。 (3)
(实际上,请不要这样做)。
你可以看到下面的例子,当文档被处理时,属性引用将被相应的属性值替换。
Asciidoctor是https://github.com/asciidoctor/asciidoctor[开源的]。
Warning
|
如果你丢了一只酸橙色的袜子,请在https://github.com/asciidoctor/asciidoctor/issues[Asciidoctor 问题跟踪器]中提交一张票据。实际上,请不要这样做。 |
引用内置属性
内置文档属性(即,由处理器自动设置的文档属性)的引用方式与自定义(即,用户定义的)文档属性相同。例如,AsciiDoc处理器会自动设置这些支持的 字符替换属性。这意味着,你可以在文档中任何地方引用它们,而无需在文档头部创建属性条目。
提示:Wolpertingers不喜欢高于100摄氏度的温度。我们的服务器也是如此。
-
通过在一对花括号(
{
和}
)中包含其名称来引用字符替换属性deg
。
如您所见,当文档被处理时,属性引用会被替换为属性的值。
Tip
|
沃尔珀廷格不喜欢温度超过100摄氏度。我们的服务器也不喜欢它们。 |
转义属性引用
您可能会遇到这样一种情况:在您的内容中出现的一系列字符与AsciiDoc属性引用的语法匹配,但实际上并不是AsciiDoc属性引用。例如,如果您在记录路径模板,您可能需要引用URL路径中的可替换部分,这部分也用大括号括起来(例如,/items/{id})。在这种情况下,您需要一种方法来转义属性引用,以便AsciiDoc处理器知道跳过它。否则,处理器可能会警告缺少属性引用或执行意外的替换。AsciiDoc提供了几种方法来转义属性引用。
使用反斜杠作为前缀
你可以通过在属性引用前加一个反斜杠来转义它。当处理器遇到这种语法时,它将移除反斜杠,并且按原样传递剩余看起来像是属性引用的部分。
在使用反斜杠转义的属性引用中,属性引用使用反斜杠进行了转义。
在路径 /items/{id} 中,id 是一个路径参数。
在使用反斜杠转义的属性引用的输出中,我们可以看到路径中的`{id}`表达式被保留了。
在路径 /items/{id} 中,id 是一个路径参数。
请记住,只有当花括号之间的文本是一个有效的属性名时,反斜杠才会被识别。如果跟在反斜线后面的语法不符合属性引用,那么在处理期间反斜杠不会被移除。
将其封闭在直通中
您还可以通过将属性引用包含在内联直通中来转义它。在这种情况下,处理器将使用您所选择的直通类型的正常替换规则。
在 一个通过内联跳过包围来转义的属性引用。 中,通过将属性引用包含在内联直通中来对其进行转义。
在路径 +/items/{id}+ 中,id是一个路径参数。
在一个通过内联跳过包围来转义的属性引用。的输出中,我们可以看到路径中的`{id}`表达式被保留了。
在路径 /items/{id} 中,id 是一条路径参数。
当使用内联直通时,你不必担心花括号是否形成了属性引用。直通封闭之间的所有文本都会直接传送到输出中。
替代性逃逸机制
属性引用会被替换为 属性替换。因此,你可以控制替换的任何地方,都可以防止属性引用被替换。这包括内联的 pass 宏以及块上的 subs 属性。有关更多细节,请参见 使用 passthrough 来防止替换。