Asciidoctor 升级日志

Antora 3 使用 Asciidoctor.js 2.2.x(Ascidoctor 2.0.x)而非 Asciidoctor.js 1.5.9(Ascidoctor 1.5.8)来处理内容文件。Asciidoctor 2 引入了许多新功能,并对现有功能进行了一些实质性修改。

Asciidoctor 2 功能变更

以下章节介绍了现有 Asciidoctor 功能的新行为,并建议您在从 Antora 2 升级到 Antora 3 之前应采取的措施。

非 AsiiDoc 文件和 include 指令

功能 新的行为 操作

使用 include 指令包含非 AsciiDoc 文件,尤其是逐字(列表、字面或源代码)块内的文件

在使用 include 指令包含非 AsciiDoc 文件时,尾部空格字符不会删除,制表符不会展开,换行符不会规范化。这可能会改变输出的显示方式。

  • 更新混合使用制表符和空格或换行不一致的非 AsciiDoc 文件,如果这些文件的内容在发布时没有按预期显示。

  • 如果缩进属性已设置但未按预期运行,则替换非 AsciiDoc 文件中的任何制表符。

  • 删除非 AsciiDoc 文件中的尾部空格字符,尤其是在文件内容中使用呼出或应用缩进属性时。

在插入非 AsciiDoc 文件时,在 include 指令或逐字块上设置缩进属性

由于制表符不会在非 AsciiDoc 内容中展开,缩进属性可能无法正常工作。

使用 include 指令将带有 callouts 的非 AsciiDoc 文件包含到逐字块中

由于没有删除尾部空格,因此可能无法再检测到呼出号码。

列表和源代码块

功能 新的行为 操作

设置 source-language 时,分隔的列表块没有明确的样式

如果在文档、组件描述符或 playbook 中设置了 source-language,则没有明确样式的分隔列表块 (----) 会自动晋升为源代码块。这可能会导致不必要的语法高亮。

如果未设置 source-language,则无需采取任何措施。

如果设置了 source-language,请执行以下操作:

* 将样式列表分配给不应提升为源代码块的任何未分隔样式列表块。您也可以将它们更改为分隔字面块 (…​.)。 * (可选)从应提升为源数据块的分隔列表块中移除样式源。源样式会自动应用。

请参阅 源代码块 了解更多信息。

未指定语言的源码块

当未在源码块上设置语言或通过 source-language 设置语言时,将自动为源码块(源码)分配 "无" 语言。

该代码块的样式与其他源代码块相同,但不应用语法高亮。

如果这种行为可以接受,则无需更改。否则,请执行以下操作之一:

  • 为源数据块指定适当的语言,或

  • 删除 source 样式,代之以列表样式,或

  • 删除 source 样式,将代码块改为分隔字面代码块 (…​.)。

请参阅 源代码块 了解更多信息。

功能 新的行为 操作

al 列修饰符

当对表格中的列应用 AsciiDoc (a) 和 literal (l) 修饰符时,现在可将正常替换和默认标题格式正确应用于隐式标题行中的单元格。

更新结合隐式标题行使用 al 修饰符的表格,以便显示所需的输出。

v 修饰符

诗句修饰符 (v) 已被弃用。分配了 v 修饰符的列或单元格现在被视为普通表格单元格。

如果可以接受单元格内容显示为常规内容,则无需执行任何操作。

table-topbot CSS 类

CSS 类 table-ends 取代了过时的 CSS 类 table-topbot

如果您在用户界面中自定义了 table-topbot 的样式,请将类名更新为 table-ends,并创建一个新的用户UI包版本。

表列宽度

计算表格列宽时使用的四舍五入方法发生了细微变化。

无需采取任何行动,因为网站访问者应该不会注意到这一变化。

列表

功能 新的行为 操作

说明列表分隔符 (::)

说明列表分隔符,即空行或行首的双冒号 (::) 不再被误认为是说明列表项。

删除双冒号 (::) 周围的转义句法,这些双冒号曾被误认为是描述列表分隔符。

章节和块标题

功能 新的行为 操作

章节和区块标题替换顺序

应用于章节和块标题的替换顺序现在与正常替换顺序一致。这可能会影响使用属性引用的章节和块标题。

检查包含属性引用的章节和块标题是否有误。

无效和未解决的引用和属性

功能 新的行为 操作

内容中出现 "未解决的包含指令" 信息

信息已更改为 "未解决的指令"。

除非使用后处理器在输出中查找此信息,否则不执行任何操作。

page 类

xrefs 的类 page 已被 xref <family> 所取代,其中 <family> 是 xref 指向的资源族名称(如 xref 页)。

如果 CSS 或后处理器试图匹配该类,则需要更新 CSS 或后处理器中的选择器。现在您可以使用 CSS 选择器 a.xref 找到页面中的所有 xref 链接。

页面 unresolved 类

当 xref 的目标无效或无法解析时,类页面未解析已被 xref 未解析所取代。

如果 CSS 或后置处理器试图匹配该类,则需要更新 CSS 或后置处理器中的选择器。

内嵌锚点的引用验证

如果 Asciidoctor 无法找到对内联锚点的引用,即使该引用存在,它也会在 info 层记录一条信息,说明可能存在无效引用。

使用双方括号定义行内锚点,并只将它们放在 Asciidoctor 可以扫描到的位置。有效位置包括段落文本中的任何位置,或者列表项或表格单元格的开头。您也可以忽略这些信息或不启用信息日志级别。

attribute-missing

现在,在处理包含指令和块宏时,将尊重 attribute-missing 设置。这可能会发现新的丢失包含文件和引用。

检查日志信息中是否有新的警告,并修复任何报告的错误。

脚注

功能 新的行为 操作

脚注宏

footnoteref 宏已被弃用,脚注宏的结构已发生变化,以便与其他 AsciiDoc 宏保持一致。以前,脚注目标放在宏的方括号内。现在,目标直接放在冒号之后(footnote:<target>[<optional attributes>])。

footnoteref 更改为 footnote,并将脚注目标移到正确位置。

脚注中的锚点和 xrefs

锚和 xref 宏在脚注宏之前处理,这样脚注宏就不会过早终止。

删除脚注宏属性列表中使用的锚和 xref 宏的转义语法,如反斜线 (\)。

Quote 块

功能 新的行为 操作

"" 引号块分隔符

2 个字符的 "" 引号块分隔符已被弃用。

删除已废弃的 "" 分隔符,代之以带四个下划线 (__) 的引号块样式或引号段落语法。

编码

功能 新的行为 操作

为电子邮件地址中的字符编码,以符合 RFC-3986 标准

以前,电子邮件地址中的空格编码为 %20。现在,电子邮件地址中的空格被编码为加号 (+),以符合 RFC-3986 标准。

这一更改不会影响电子邮件链接的行为。

语义版本管理和 Asciidoctor 2

从 Asciidoctor 2.0.0 开始,Ascidoctor 和 Asciidoctor.js 转向语义版本控制。这样,Antora 就能在安装过程中自动获取 Asciidoctor.js 的最新补丁版本,而无需发布新的 Antora 版本。

准备从 Antora 2 升级到 Antora 3.1?请参阅 Antora 升级 说明。