定义和修改属性
除了某些只读的内在属性外,任何 AsciiDoc 文档属性(这里的属性)都可以从CLI、剧本、组件描述符或使用属性条目在页头中定义。除非使用修饰符改变了给定属性的优先级,否则优先级匹配该顺序(从高到低)。这些不同的作用域使您能够在所需的粒度级别上定义属性,并能够针对不同的环境或情况覆盖它们的值。
本页解释如何使用属性条目在页级别定义和修改属性。或者,可以使用CLI、剧本或组件描述符在更高的级别设置这些属性。定义或修改属性的结果是相同的(这意味着处理器不关心如何定义它)。
什么是属性条目
属性条目是为页面定义属性和(如果适用)为其赋值的主要机制。您可以将属性条目看作是 AsciiDoc
中的全局变量赋值。
属性条目由两部分组成:名称和值。每个属性项必须在页头的单独一行中输入。属性条目以一个开始冒号( :
)开始,紧接着是属性名称,然后是一个结束冒号( :
)。这将激活或设置属性,以便您可以在页面中使用它。
= Page Title
:name-of-an-attribute: (1)
1 | 属性名的前面直接加一个开始冒号( : ),后面直接加一个结束冒号( : )。 |
在许多情况下,通过在属性条目的名称后输入信息,显式地为属性赋值。该值必须与结束冒号( :
)至少偏移一个空格。
= Page Title
:name-of-an-attribute: value of the attribute (1)
1 | 显式赋值的值与结束冒号( : )至少偏移一个空格。在输入值结束时,按 kbd:[Enter] 。 |
一些内置的 AsciiDoc
属性不需要在属性条目中显式赋值,因为它们是布尔属性或具有默认值。
= Page Title
:name-of-an-attribute: (1)
1 | 如果不想显式地为该属性赋值,请在结束冒号( : )后按 kbd:[Enter]键。 |
内置布尔属性的值总是空的,因为它们唯一接受的值是空字符串。其它内置属性可能有默认值。如果您设置了一个内置属性并将其值保留为空,那么 Antora 将在处理时将默认值(如果有的话)分配给该属性。
设置内置属性
让我们激活名为 sectanchors
的 AsciiDoc
属性。通过在页头的属性条目中输入其名称来设置属性。
= Page Title
:sectanchors: (1)
1 | 该属性在页头中设置,直接在其名称 sectanchors 前面加上一个开始冒号( : ),然后在其后面加上一个结束冒号( : )。 |
设置后,sectanchors
将在每个部分标题的左侧添加一个锚。Sectanchors
是一个布尔属性,所以它的值是一个空字符串。
为内置属性分配值
在下一个示例中,让我们为内置的 AsciiDoc 属性赋值。属性 xrefstyle
有三个可以接受的内置值: short
、full
和 basic
。
= Page Title
:xrefstyle: short (1)
1 | 在页眉中设置 xrefstyle 并将其赋值为 short 。显式值必须与结束冒号( : )至少偏移一个空格。 |
当将短值赋给 xrefstyle
时,任何对带有锚点的块的页内引用都将显示块的标签和编号,如,Listing 1 所示,如果引用中没有指定链接文本。
- CAUTION
-
一些内置的 AsciiDoc 属性在 Antora 环境中不适用。这些属性包括 data-uri、allow-uri-read、docinfo、linkcss、noheader、nofooter、webfonts 和 outfilesuffix 。设置这些属性要么没有效果,要么可能导致 Antora 故障。其它属性,如 imagesdir ,由 Antora 自动设置,不能重写。
定义自定义属性
自定义属性通常存储常用的文本和 url 。然后通过简单地输入他们的名字(而不是重复输入文本或 url )在整个页面中引用他们。在可以引用自定义属性之前,它们必须具有用户定义的名称并被赋值。
属性名必须:
-
长度至少为一个字符
-
以单词字符(
A-Z
,a-z
,0-9
, 或_
)开头,并且 -
只能包含单词字符和连字符,即名称中不能包含
.
和空格。
虽然属性名称中允许使用大写字符,但在存储之前,该名称会自动转换为小写字符。最佳做法是在名称中只使用小写字母,并避免以数字开头。
属性值可以:
-
是任何内联内容,和
-
包含换行符,但仅在使用显式换行符(
+
)的情况下。
在示例2中,使用属性条目定义自定义属性的名称和值。
= Page Title
:url-repo: https://gitlab.com/antora/demo/docs-site
现在,您可以通过在一组花括号( {attribute-name}
)中输入属性的名称,在页面中任何需要的地方引用该属性。您可以在 为 URL
创建属性 中看到使用自定义属性替换复杂 URL
的另一个示例。