定义和修改属性

除了某些内在属性是只读的之外,任何AsciiDoc文档属性(以下简称为属性)都可以从CLI、playbook、组件描述符或页面头部使用属性条目定义。优先级匹配该顺序(从高到低),除非使用修饰符为给定属性改变了优先级。这些不同的范围使您能够根据需要定义属性的粒度,并能够为不同环境或情况覆盖它们的值。

本页面解释了如何使用属性条目在页面级别定义和修改属性。或者,这些属性可以在CLI、playbook或组件描述符中设置更高级别。定义或修改属性的结果是相同的(处理器不关心它是如何定义的)。

什么是属性条目?

属性条目是定义页面属性的主要机制,如果适用,还可以为其分配一个值。您可以将属性条目视为AsciiDoc中的全局变量赋值。

属性条目由两部分组成:一个名称和一个。每个属性条目必须单独在页面头部的一行中输入。属性条目以一个开放冒号(:)开头,直接跟着属性的名称,然后是一个闭合冒号(:)。这会激活或设置属性,以便您可以在页面中使用它。

= 页面标题
:属性名称: (1)
1 属性的名称直接前面是一个开放冒号(:),直接后面是一个闭合冒号(:)。

在许多情况下,您可以通过在属性条目中的名称后输入信息来显式地为属性分配一个值。值必须至少与闭合冒号(:)相隔一个空格。

= 页面标题
:属性名称: 属性的值 (1)
1 显式分配的值必须至少与闭合冒号(:)相隔一个空格。在值的末尾,按Enter

某些内置的AsciiDoc属性在属性条目中不需要显式分配值,因为它们是布尔属性或具有默认值。

= 页面标题
:属性名称: (1)
1 如果您不想显式为属性分配值,请在闭合冒号(:)后按Enter

内置布尔属性的值始终为空,因为它们唯一接受的值是一个空字符串。其他内置属性可能具有默认值。如果设置了内置属性并将其值留空,Antora会在处理时将默认值(如果有)分配给属性。

设置内置属性

让我们激活名为sectanchors的AsciiDoc属性。通过在页面头部的属性条目中输入其名称来设置属性。

示例1. 设置内置属性
= 页面标题
:sectanchors: (1)
1 通过在页面头部直接在其名称sectanchors前加上一个开放冒号(:),后面直接跟着一个闭合冒号(:)来设置属性。

设置sectanchors后,会在每个部分标题的左侧添加一个锚点。 sectanchors是一个布尔属性,因此其值是一个空字符串

为内置属性分配值

在下一个示例中,让我们为内置AsciiDoc属性分配一个值。属性xrefstyle有三个内置值可接受,shortfullbasic

= 页面标题
:xrefstyle: short (1)
1 在页面头部设置xrefstyle并将其分配为值short。显式值必须至少与闭合冒号(:)相隔一个空格。

当将short值分配给xrefstyle时,对具有锚点的块的内部引用将显示块的标签和编号,例如,列表1,如果在引用中未指定链接文本。

某些内置的AsciiDoc属性在Antora环境中不适用。这些属性包括data-uriallow-uri-readdocinfolinkcssnoheadernofooterwebfontsoutfilesuffix。设置这些属性要么没有效果,要么可能导致Antora发生故障。其他属性,如imagesdir,由Antora自动设置,不能被覆盖。

定义自定义属性

自定义属性通常存储经常使用的文本和URL。然后,通过简单地输入它们的名称(而不是重复输入文本或URL)在整个页面中引用它们。在可以引用自定义属性之前,必须为其定义一个用户定义的名称并分配一个值。

属性的名称必须:

  • 至少为一个字符长,

  • 以字母字符(A-Z、a-z、0-9或_)开头,并且

  • 只包含字母字符和连字符,这意味着名称不能包含点(.)或空格。

虽然属性名称中允许大写字符,但名称在存储之前会自动转换为小写。最佳实践是只在名称中使用小写字母,并避免以数字开头。

属性值可以:

  • 是任何内联内容,并且

  • 包含换行符,但只有在使用显式换行符(+)时才能包含。

示例2中,使用属性条目定义了自定义属性的名称和值。

示例2. 使用属性条目定义自定义属性
= 页面标题
:url-repo: https://gitlab.com/antora/demo/docs-site

现在,您可以在整个页面中需要的任何地方通过在一对大括号内输入其名称({属性名称})来引用该属性。您可以在为URL创建属性中看到另一个示例,其中使用自定义属性来替换复杂的URL。

取消设置属性

内置和自定义属性可以被取消设置,即关闭,通过在属性条目中的名称前面或后面添加一个感叹号符号(!)。

= 页面标题
:!sectanchors:
:table-caption!:

一旦取消设置,属性的行为和值将不再对页面可用。

优先级规则

通过在站点的playbook文件中声明属性,可以将属性范围限定为整个站点。通过在组件描述符文件(即antora.yml)中声明属性,可以将属性应用于单个组件版本。在playbook或组件描述符中硬设置或硬取消设置的属性优先于页面中定义的属性。可以使用优先级修饰符来颠倒此优先级顺序。

内在属性永远不能被修改,因此被视为只读。

查看有关站点属性组件版本属性的优先级规则以获取更多信息。