GeneratorContext API 参考

GeneratorContext API 是访问 Antora 扩展工具的主要入口。Antora 会创建一个 GeneratorContext 实例(称为生成器上下文),并将其绑定到扩展的注册函数及其添加的任何监听器。该对象在所有扩展和事件监听器中共享。生成器上下文提供了一种添加事件监听器的方法。它还提供了一些上下文感知辅助工具,让编写扩展程序变得更容易。

GeneratorContext 类扩展了 Node.js EventEmitter 类型。生成器上下文继承并使用 EventEmitter 上的所有方法。但是,千万不要调用 emit 对象来发射 Antora 自己的事件。

除了 EventEmitter 上的方法外,下表还介绍了 GeneratorContext API 提供的方法。

Table 1. Additional methods provided by the GeneratorContext
Method name Parameter(s) Description

getFunctions

none

返回生成器函数对象。 生成器函数被定义为生成器中的任何离散步骤,以及这些步骤使用的关键实用程序函数。 内置生成器函数在 contextStarted 事件发生前不可用。 此对象为只读对象。

getLogger

String

创建指定名称的日志记录器实例。 如果指定了参数,且参数值不是假的,该方法将返回具有指定名称的子日志记录器。 如果指定了参数,且值为空,该方法将返回根日志记录器。 如果指定了参数,且值为空,该方法将返回根日志记录器;如果尚未配置日志记录器,则返回未定义日志记录器。 如果未指定参数,该方法将返回名称为 antora 的日志记录器。 除非参数值为空,否则在需要时总是会创建日志记录器。

getVariables

none

返回上下文变量对象。 该对象只读。

lockVariable

String

锁定指定的上下文变量并返回其值。

replaceFunctions

Object

将指定函数绑定到生成器上下文,并用它们替换生成器上下文中的现有函数。 如果本方法在 contextStarted 事件之前调用,则相应的内置生成器函数将不再需要和注册。

removeVariable

String

如果指定的上下文变量未锁定,则删除该变量并返回其值。 如果变量已锁定,则会出错。

require

String

要求使用 Antora 生成器中的模块名称。 该方法可用于要求使用 Antora 内部组件,而无需将 Antora 组件声明为依赖关系。

stop

none

停止生成器的运行(通过发出 contextStoppedcontextClosed 事件有序关闭),并使用指定的退出代码退出。 如果未指定退出代码,进程将使用在进程上设置的退出代码,如果未设置退出代码,则使用 0。

updateVariables

Object

用指定变量添加或替换上下文变量。

由于 GeneratorContext 是一个 EventEmitter,因此您不仅可以用它来注册监听器,还可以用它来获取已注册监听器的列表、取消注册监听器以及以不同的顺序重新注册监听器。