GeneratorContext API 参考

GeneratorContext API 是进入 Antora 扩展功能的主要访问点。Antora 创建了 GeneratorContext 的一个实例,称为生成器上下文,并将其绑定到扩展的 register 函数以及添加的任何监听器。这个对象在所有扩展和事件监听器之间共享。生成器上下文提供了一种添加这些事件监听器的方法。它还提供了一些上下文感知的辅助函数,使编写扩展更容易。

GeneratorContext 类扩展了 Node.js 的 EventEmitter 类型。EventEmitter 上的所有方法都被 GeneratorContext 继承并可在生成器上下文上使用。但是,您不应该调用 emit 对象来触发 Antora 自己的事件之一。

除了 EventEmitter 上的方法之外,以下表格描述了 GeneratorContext API 提供的方法。

表 1. GeneratorContext 提供的额外方法
方法名称 参数 描述

getFunctions

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

getLogger

字符串

创建指定名称的日志记录器实例。如果指定了参数,并且值不为假,该方法将返回具有指定名称的子记录器。如果指定了参数,并且值为空,该方法将返回根记录器。如果指定了参数,并且值为 null,则该方法将返回根记录器,如果记录器尚未配置,则返回 undefined。如果未指定参数,则该方法将返回名称为 antora 的记录器。除非参数值为 null,否则始终会创建记录器(如果需要)。

getVariables

返回上下文变量对象。此对象是只读的。

lockVariable

字符串

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

replaceFunctions

对象

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

removeVariable

字符串

如果变量未被锁定,则移除指定的上下文变量并返回其值。如果变量被锁定,则会抛出错误。

require

字符串

在 Antora 生成器的上下文中需要模块的名称。此方法可用于在不必声明 Antora 组件为依赖项的情况下需要 Antora 内部组件。

stop

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

updateVariables

对象

添加或替换具有指定变量的上下文变量。

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